création liste déroulante vba

grabbish

XLDnaute Nouveau
Bonjour,

Le fichier Excel que je crée est basé avant tout sur du code vba.
Je souhaiterais créer une liste déroulante dans une cellule Excel mais en vba.
J'ai actuellement un tableau en mémoire et j'aimerais remplir ma liste avec les éléments du tableau. Ce tableau n'a pas une taille fixe selon la situation et les éléments à l'intérieur sont eux aussi suceptibles de changer. L'utilisateur du fichier excel sera quelqu'un d'autre et sera suceptible de rentré n'importe quoi comme éléments du tableau.

J'aimerais donc savoir comment remplir une liste déroulante avec des données d'un tableau en mémoire et le tout fait en vba et non par des formules excel,

Pour l'instant, j'ai créé ma liste déroulante avec l'enregistreur de macro et le code obtenu est le suivant :

With Selection.Validation
.Delete
.Add type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="DOSAGE"

.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Je ne trouve pas la syntaxe pour qu'à la place de "DOSAGE", il prennent tous les éléments du tableau (qui n'est disponible qu'en mémoire)
Pouvez m'aider s'il vous plait
Merci d'avance
 
Dernière édition:

aalex_38

XLDnaute Nouveau
Re : création liste déroulante vba

Bonjour,

Un exemple à adapter :

Code:
Const str2 As String = "YAMAHA,HONDA,KAWASAKY,APRILIA"
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=str2
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
 

Daury

XLDnaute Nouveau
Bonjour,

J'essaie avec VBA de faire en sorte que selon une case qui sera OUI ou NON, une autre cellule sera libre ou alors sera une liste déroulante. Le problème c'est que lorsque je rentre la formule ci-dessus, j'ai un message d'erreur "Erreur définie par l'application ou par l'objet" et la ligne .Add Type se surligne en jaune.
Avez-vous une solution ?

Merci !
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 190
Messages
2 107 001
Membres
109 735
dernier inscrit
Mounskad