Problème d'ajout d'une validation de la liste dans la feuille excel à l'aide de VBA

J'ai une feuille excel qui est chargé avec un résultat dynamique d'ensemble de données. J'ai besoin d'ajouter un OUI/NON déroulant à la fin de chaque ligne une fois que toutes les données sont chargées. Je dois le faire dynamiquement que je ne connais pas la taille de l'ensemble de résultats à l'avance.
Le code suivant génère une 'Application ou définis par l'objet défini par l'erreur":

Dim firstRow As Integer
Dim lastRow As Integer
Dim I As Integer
Dim VOptions As String
VOptions = "1. Yes, 2. No"

firstRow = GetResultRowStart.row + 1
lastRow = GetResultRowStart.End(xlDown).row

For I = firstRow To lastRow

Range("AO" & firstRow & ":AO" & lastRow).Select

With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=VOptions
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "Options"
    .ErrorTitle = ""
    .InputMessage = "Click yes or no"
    .errorMessage = ""
    .ShowInput = True
    .ShowError = True
End With


 Next I

La méthode GetResultRowStart me donne la ligne de départ qui résultent de données est renseignée dans la fiche. J'ai utilisé cette méthode, d'ailleurs dans une autre partie du code de trop et il fonctionne parfaitement.
Débogage à l'aide de boîtes de message suggéré l'erreur est générée à la Plage(..).instruction select.

Des idées sur la cause de cette erreur.

Quel est le but de la Pour I = firstRow à lastRow boucle? Il semble que chaque cellule de la colonne a la même validation de sorte que vous devriez seulement besoin d'ajouter de la validation une fois pour l'ensemble de la sélection
C'est parce que il n'y a plus de trucs fait à l'intérieur de la boucle.Cependant le problème persiste même lorsque la liste de validation de code est en dehors de la boucle pour une cellule spécifique comme celui-ci.. Range("AO11").Sélectionnez Avec La Sélection.La Validation .Supprimer .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Opérateur:= _ xlBetween, Formula1:=VOptions .IgnoreBlank = True .InCellDropdown = True .InputTitle = "Options" .ErrorTitle = "" .InputMessage = "Cliquez sur oui ou non" .errorMessage = "" .ShowInput = True .ShowError = True End Avec

OriginalL'auteur atlantis | 2009-06-15