Liste de validation et VBA

Bonjour à tous,

je cherche à créer une liste déroulante dynamique en VBA avec ce code :

Sub new ()

Dim WSO As Worksheet

Set WSO = Worksheets("Commissionnement")

    With WSO.Range("B7").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=offset(VADEURS!D7;0;0;COUNTA(VADEURS!D:D)-2)"
    End With

End sub

Malheureusement j'ai une erreur dans la partie

"=offset(VADEURS!D7;0;0;COUNTA(VADEURS!D:D)-2)"

et je n'arrive pas à trouver le bon code.

Merci pour votre réponse

Cordialement,

vlad

Bonjour

Ton excel est bien en anglais ? (à préciser dans ton profil)

Non mon excel est en français.

vlad

Donc utilise la formule avec DECALER

Formula1:="=DECALER(VADEURS!$D$7;0;0;NBVAL(VADEURS!$D:$D)-2)"

J'ai l'erreur suivante :

Erreur d'exécution '1004'

Erreur définie par l'application et par l'objet.

vlad

En effet ! et pourtant c'est bien ce que donne l'éditeur de macro.

Plus simplement ...

Sub listevalidation()

    maListe = ""
    For i = 7 To Sheets("VADEURS").Cells(Rows.Count, "D").End(xlUp).Row
        maListe = maListe & Sheets("VADEURS").Cells(i, "D") & ","
    Next

    With Selection.Validation
        .Delete
        .Add xlValidateList, Formula1:=maListe
    End With

End Sub

mais à réactiver en cas de changement dans la liste !

Merci pour ce code.

vlad

Rechercher des sujets similaires à "liste validation vba"