création liste déroulante vba

  • Initiateur de la discussion Initiateur de la discussion grabbish
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

grabbish

Guest
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 modification par un modérateur:
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
 
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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
27
Affichages
2 K
adet ruireux
A
Réponses
11
Affichages
3 K
F
A
Réponses
11
Affichages
906
anarkbones
A
N
Réponses
12
Affichages
1 K
NadJP
N
P
Réponses
2
Affichages
954
Réponses
12
Affichages
1 K
M
Réponses
2
Affichages
1 K
moialbert2
M
T
  • Résolu(e)
XL pour MAC lenteur du vba
Réponses
16
Affichages
3 K
T
  • Question Question
Réponses
3
Affichages
985
Retour