Bonjour,
En effectuant une macro qui pourrait considérablement me simplifier la tâche, je rencontre un problème qui paraît assez simple mais je n'arrive pas à résoudre, je m'explique:
Pour un ensemble de ligne (de 1 à dernière ligne), j'aimerais créer une liste déroulante qui reprendrait les valeurs d'une colonne (dans un autre onglet) qui serait incrémentée de 1 lorsque la ligne est elle-même incrémentée de 1.
En clair, voici le code que je voudrais avoir mais sous-forme de boucle:
Sheets("Feuil2").Select
Range("E3").Select 'cellule qui s'incrémente
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Feuil3!$B$1:$B$21" 'selection dont j'aimerais que la colonne s'incrémente
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Sheets("Feuil2").Select
Range("E4").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Feuil3!$C$1:$C$21"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
J'ai déjà essayer de cette façon:
For v = 2 To Feuil2.Range("A65535").End(xlUp).Row
Sheets("Feuil2").Activate
Cells(v, 5).Select
With Selection.Validation
DernLigne = Columns(v).Find("*", , , , xlByColumns, xlPrevious).Row
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Sheets("Feuil3").Range(Cells(1, v), Cells(DernLigne, v))
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
v = v + 1
Next
Malheuresement, ce code ne fonctionne pas...
Comment feriez-vous?
Merci par avance pour votre aide.
Rémi