Création Liste déroulante en VBA

Bonjour à tous,

Je cherche à créer une liste déroulante via vba, afin de créer un questionnaire.

j'ai enregistré la macro avec l'enregistreur pour avoir une idée du code :

Range("D323").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=("Electricité,Combustible")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True

Cela fonctionne mais je bloque sur un problème :

Pour définir la base de données qui définira les choix de liste, à prori la ligne suivante est appelée :

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=("Electricité,Combustible")

Je n'arrives pas à définir une plage "Range" présent sur une autre feuille, uniquement à entrer les données manuellement directement dans le code, une erreur 1004 "la méthode range a échoué" apparaît à chaque fois

Après quelques recherches, jJe penses que formula1 n'est pas compatible avec range, mais je ne sais pas par quoi remplacer ? Auriez-vous une idée ?

Merci, bonne journée

Bonjour,

Voici un essai si la source des données est en A1:A2 de la feuille 1.

Sub AjoutValidation()

With Range("D323").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Feuil1!$A$1:$A$2"
end with

end sub

Cdlt,

Bonjour

essaie ceci (c'est un exemple)

Formula1:="=Feuil1!$A$1:$A$4"

zut, bonjour 3GB, un peu plus rapide !

Merci pour votre retour rapide, effectivement cela fonctionne comme ça ! :)

Bonne journée

Rechercher des sujets similaires à "creation liste deroulante vba"