Bonjour à tous,
Je cherche à créer une liste déroulante qui varie en fonction d'un critère, ci-après mon code :
Sub dmg2()
Dim DLig As Long
DLig = Workbooks("Classeur1.xlsm").Sheets("Feuil1").Columns("B").End(xlDown).Row
Dim Odec As Range
For Each o In Sheets("Feuil1").Range("D3:D" & DLig)
If o.Value = "OK" Then
x = o.Row
If Odec Is Nothing Then
Set Odec = Range("E" & x)
Else
Set Odec = Union(Odec, Range("E" & x))
End If
End If
Next o
Sheets("Feuil2").Activate
With Sheets("Feuil2").Range("G5").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Odec"
End With
End Sub
Mais je bug sur l'implémentation de la sélection crée "Odec" dans une liste de validation, je tombe sur l'erreur d'éxecution '1004': erreur définie par l'application ou par l'objet
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Odec"
J'ai tenté de mettre :
Formula1:=Odec
Formula1:= "=" & Odec
Ce qui n'a pas abouti.
Le problème c'est que je ne comprend pas cette partie de code, je l'ai vu sur des forums et dans l'enregistreur mais je ne suis pas sur de comprendre ce qui est attendu.
Auriez-vous une solution ? Hormis celle de récupérer un copié collé de la selection ?
Bien à vous
Abuza