Formule VBA sur excel liste déroulante
Fermé
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
-
30 mai 2008 à 09:44
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 juin 2008 à 11:50
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 juin 2008 à 11:50
Bonjour,
Sur VBA en excel je voudrais avoir une liste déroulante. J'ai fait une "inputbox" mais je voudrais limiter la saisie dans cette inputbox à certaine chose. Pour ma macro je voudrais limiter la saisie au mois de l'année (Janvier, Février, Mars, ...)
J'ai eu donc l'idée d'avoir une liste déroulante, mais comment faire? Sachant que les éléments de la liste seront dans VBA et non sur une feuille de classeur Excel.
J'espère avoir été assez clair, merci pour votre aide
Sur VBA en excel je voudrais avoir une liste déroulante. J'ai fait une "inputbox" mais je voudrais limiter la saisie dans cette inputbox à certaine chose. Pour ma macro je voudrais limiter la saisie au mois de l'année (Janvier, Février, Mars, ...)
J'ai eu donc l'idée d'avoir une liste déroulante, mais comment faire? Sachant que les éléments de la liste seront dans VBA et non sur une feuille de classeur Excel.
J'espère avoir été assez clair, merci pour votre aide
A voir également:
- Vba inputbox liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer une liste déroulante excel - Forum Word
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
14 réponses
philber221
Messages postés
2
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
30 mai 2008
2
30 mai 2008 à 11:50
30 mai 2008 à 11:50
Salut,
Si j'ai bien compris tu as créé un formulaire et tu voudrais créer une liste déroulante de mois.
Pour ça il faudrait que tu remplace le InputBox (c'est une zone de texte, non une liste déroulante) de ton formulaire, par un ComboBox (liste déroulante).
Ensuite, si tu as mis dans ta page excel un bouton pour ouvrir ton formulaire tu double clique. VBA s'ouvre et tu devrais avoir :
Private Sub CommandButton1_Click()
tape ensuite le code suivant :
Load UserForm1
UserFrom1.ComboBox1.AddItem "Janvier"
UserFrom1.ComboBox1.AddItem "Février"
[etc...]
UserFrom1.ComboBox1.AddItem "Décembre"
UserForm1.Show
End Sub
En espérant avoir répondu à ta question a+ bonne continuation
Si j'ai bien compris tu as créé un formulaire et tu voudrais créer une liste déroulante de mois.
Pour ça il faudrait que tu remplace le InputBox (c'est une zone de texte, non une liste déroulante) de ton formulaire, par un ComboBox (liste déroulante).
Ensuite, si tu as mis dans ta page excel un bouton pour ouvrir ton formulaire tu double clique. VBA s'ouvre et tu devrais avoir :
Private Sub CommandButton1_Click()
tape ensuite le code suivant :
Load UserForm1
UserFrom1.ComboBox1.AddItem "Janvier"
UserFrom1.ComboBox1.AddItem "Février"
[etc...]
UserFrom1.ComboBox1.AddItem "Décembre"
UserForm1.Show
End Sub
En espérant avoir répondu à ta question a+ bonne continuation
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
30 mai 2008 à 10:15
30 mai 2008 à 10:15
Explique comment tu veux que ta fenetre s'affiche , qu'est ce qu'elle doit faire etc. . . ce que tu demandes je suis en train d'en faire
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 10:28
30 mai 2008 à 10:28
Comment je veux que ma fenetre s'affiche, je n'est pas de préférence. Je m'explique
j'ai créé une variable mois qui sera ensuite mis dans une cellule
mois = InputBox("Veuillez entrez le mois de l'encours en toute lettre" & Chr(10) & "Exemple : janvier", "Mois?")
cells(1,1)= mois
Le probleme c'est que si l'utilisateur de la macro met autre chose qu'un mois ça compliquera la tache. si par exemple il met "Sept" au lieu de "Septembre" ma cellule A1 affichera "Sept" ce qui pose probleme si j'effectue une recherche par mois!
C'est un petit exemple mais en réalité je travail sur plus de 13 000 lignes. Il est donc important de pouvoir limiter la saisie.
Je veux "Janvier","Février","Mars", [...], "Décembre" .
Si j'était sur une feuille de classeur j'aurais fait une liste déroulante avec les 12 mois de l'année. Ainsi on la saisie serait limité. Je vx pouvoir faire la même chose dans ma macro sur VBA !!
Merci
j'ai créé une variable mois qui sera ensuite mis dans une cellule
mois = InputBox("Veuillez entrez le mois de l'encours en toute lettre" & Chr(10) & "Exemple : janvier", "Mois?")
cells(1,1)= mois
Le probleme c'est que si l'utilisateur de la macro met autre chose qu'un mois ça compliquera la tache. si par exemple il met "Sept" au lieu de "Septembre" ma cellule A1 affichera "Sept" ce qui pose probleme si j'effectue une recherche par mois!
C'est un petit exemple mais en réalité je travail sur plus de 13 000 lignes. Il est donc important de pouvoir limiter la saisie.
Je veux "Janvier","Février","Mars", [...], "Décembre" .
Si j'était sur une feuille de classeur j'aurais fait une liste déroulante avec les 12 mois de l'année. Ainsi on la saisie serait limité. Je vx pouvoir faire la même chose dans ma macro sur VBA !!
Merci
Tu peux écrire la liste des mois dans une colonne de ta feuille,
Ensuite tu sélectionne la cellule où tu veux placer ta liste puis :
Données / Validation
Dans l'onglet Option tu cliques dans le menu "Autoriser" tu choisis "Liste"
Puis dans "Source", tu sélectionnes ta liste de mois.
Les onglets "Message de saisie" et "Alerte d'erreur" te permettent de donner des informations à l'utilisateur.
Dis moi si cette réponse t'aide, sinon envoi une partie de la feuille que tu entrain de faire....
Ensuite tu sélectionne la cellule où tu veux placer ta liste puis :
Données / Validation
Dans l'onglet Option tu cliques dans le menu "Autoriser" tu choisis "Liste"
Puis dans "Source", tu sélectionnes ta liste de mois.
Les onglets "Message de saisie" et "Alerte d'erreur" te permettent de donner des informations à l'utilisateur.
Dis moi si cette réponse t'aide, sinon envoi une partie de la feuille que tu entrain de faire....
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 14:08
30 mai 2008 à 14:08
oui ça je sais faire, il n'y a aucun problem mais je veux le faire sans pacer par la feuille Excel
je veux que mes donnée source sois dans mon programme macro.
je veux que mes donnée source sois dans mon programme macro.
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 14:16
30 mai 2008 à 14:16
Sub Extrait()
x = 2
mois = InputBox("Veuillez entrez le mois en toute lettre" & Chr(10) & "Exemple : janvier", "Mois?")
Do While Cells(x, 1) <> 0
Cells(x, 1) = mois
Cells(x, 4) = Cells(x, 2) + Cells(x, 3)
x = x + 1
End Sub
Voilà un exemple de code
à la place du inputbox je veux mettre combobox pour limiter la saisie de celui qui lance la macro! ( la macro ne s'applique que sur 1 mois).
voilà en espérant m'être fais comprendre.
x = 2
mois = InputBox("Veuillez entrez le mois en toute lettre" & Chr(10) & "Exemple : janvier", "Mois?")
Do While Cells(x, 1) <> 0
Cells(x, 1) = mois
Cells(x, 4) = Cells(x, 2) + Cells(x, 3)
x = x + 1
End Sub
Voilà un exemple de code
à la place du inputbox je veux mettre combobox pour limiter la saisie de celui qui lance la macro! ( la macro ne s'applique que sur 1 mois).
voilà en espérant m'être fais comprendre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu veux donc créer une feuille excel sans toucher à la feuille, mais en utilisant uniquement VBA.
Est ce que cette fois j'ai bien compris ce que tu veux faire ?
Est ce que cette fois j'ai bien compris ce que tu veux faire ?
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 14:24
30 mai 2008 à 14:24
Oui
c'est exactement ça !!
c'est exactement ça !!
J'ai une idée avec "xlValidateListe" mais je ne connais pas la syntaxe exacte.
Je te tiens au courant, si tu trouve avant moi, stp tiens moi au courant.
A+ bon courage....
Je te tiens au courant, si tu trouve avant moi, stp tiens moi au courant.
A+ bon courage....
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mai 2008 à 15:11
30 mai 2008 à 15:11
Bonjour,
Il faut que tu fasses toi même ta boîte de message avec un UserForm. Tu y mets un ComboBox et tu récupères la valeur selectionner.
Dans le module du UserForm :
;o)
Il faut que tu fasses toi même ta boîte de message avec un UserForm. Tu y mets un ComboBox et tu récupères la valeur selectionner.
Dans le module du UserForm :
Option Explicit Private Sub ComboBox1_Click() Dim x As Integer x = 2 Do While Cells(x, 1) <> 0 Cells(x, 1) = ComboBox1.Text Cells(x, 4) = Cells(x, 2) + Cells(x, 3) x = x + 1 Wend End Sub Private Sub UserForm_Initialize() Me.Caption = "Veuillez sélectionner un mois." Me.ComboBox1.AddItem "Janvier" Me.ComboBox1.AddItem "Février" Me.ComboBox1.AddItem "Mars" Me.ComboBox1.AddItem "Avril" Me.ComboBox1.AddItem "Mai" Me.ComboBox1.AddItem "Juin" Me.ComboBox1.AddItem "Juillet" Me.ComboBox1.AddItem "Août" Me.ComboBox1.AddItem "Septembre" Me.ComboBox1.AddItem "Octobre" Me.ComboBox1.AddItem "Novembre" Me.ComboBox1.AddItem "Décembre" End Sub
;o)
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 15:23
30 mai 2008 à 15:23
Je t'avouerais que là je n'est pas compris je met ton code à quel moment ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
>
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 15:27
30 mai 2008 à 15:27
Dans l'éditeur VB (alt+F11) ... tu créés un Userform. Tu cliques sur "code" (à droite, juste au dessus de l'arborescence des feuilles) et tu fais copier/coller du code dedans. Tu n'oublies pas de mettre un ComboBox sur ton Userform.
;o)
;o)
philber221
Messages postés
2
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
30 mai 2008
2
30 mai 2008 à 15:21
30 mai 2008 à 15:21
En fait s'il te faut absolument une ComboBox, tu dois impérativement créer un formulaire avec cette Combo, je ne vois pas d'autre solution.
Le seul moyen que je voie est le suivant :
Tu créés un formulaire
tu mets comme intitulé "Selectionnez un mois de la liste"
en dessous tu mets le combobox
tu initialise ton formulaire afin de mettre les mois dans la liste.
Ensuite, dans ton code ("Extrait" que tu as mis en exemple), au lieu d'appeler la fonction "InputBox", tu appelles ton formulaire.
Je ne vois vraiment pas d'autre solution.
Le seul moyen que je voie est le suivant :
Tu créés un formulaire
tu mets comme intitulé "Selectionnez un mois de la liste"
en dessous tu mets le combobox
tu initialise ton formulaire afin de mettre les mois dans la liste.
Ensuite, dans ton code ("Extrait" que tu as mis en exemple), au lieu d'appeler la fonction "InputBox", tu appelles ton formulaire.
Je ne vois vraiment pas d'autre solution.
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 15:37
30 mai 2008 à 15:37
Ca ne fonctionne pas
message d'erreur :
Erreur de compilation :
Membre de méthode ou de données introuvable
???
message d'erreur :
Erreur de compilation :
Membre de méthode ou de données introuvable
???
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mai 2008 à 15:38
30 mai 2008 à 15:38
peux-tu nous dire sur quelle ligne de code le message apparaît ... ça pourrait nous être utile !!!
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 15:42
30 mai 2008 à 15:42
sur celle là:
Me.ComboBox1.AddItem "Janvier"
? désoler mais je n'y connait vraiment rien au UserForm là je découvre!
Me.ComboBox1.AddItem "Janvier"
? désoler mais je n'y connait vraiment rien au UserForm là je découvre!
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mai 2008 à 15:46
30 mai 2008 à 15:46
peux tu faire passer ton fichier par https://www.cjoint.com/ et ensuite mettre le lien ici.
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 16:46
30 mai 2008 à 16:46
https://www.cjoint.com/?fEqS7bmPVO
voilà j'ai un peu abrégé la macro mais c'est le même système
merci
voilà j'ai un peu abrégé la macro mais c'est le même système
merci
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
2 juin 2008 à 10:34
2 juin 2008 à 10:34
Pas de réponse ?
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 16:08
30 mai 2008 à 16:08
ok
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 16:52
30 mai 2008 à 16:52
https://www.cjoint.com/?fEqS7bmPVO
C'est fait !
Vous verrez que l'on peut mettre n'importe quoi pour le mois ce que je ne veux pas.
C'est fait !
Vous verrez que l'on peut mettre n'importe quoi pour le mois ce que je ne veux pas.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 juin 2008 à 11:50
2 juin 2008 à 11:50
bonjour, Dsl pour le retard , mais problème de connexion ce matin.
Voilà une proposition de solution : https://www.cjoint.com/?gclXLYLoSF
;o)
polux
Voilà une proposition de solution : https://www.cjoint.com/?gclXLYLoSF
;o)
polux
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
30 mai 2008 à 10:58
30 mai 2008 à 10:58
Attends faut que je fasses des tests et la j'ai trop de boulot j'vois ça un peu plus tard
ghetto972
Messages postés
14
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 juin 2008
30 mai 2008 à 11:05
30 mai 2008 à 11:05
ok, Merci
Si il y en a d'autre qui peuvent m'aider je suis preneur
Merci
Si il y en a d'autre qui peuvent m'aider je suis preneur
Merci
30 mai 2008 à 13:36
Merci mais tu peux me donner la synthax du "combobox" ?
Et le probleme c'est que je ne passe pas par une feuille avant.
Exemple :
Certains articles de type A,B,C,... ne sont valable que pour certains mois! Les A12345... sont ceux du mois de Février, les B12345.... sont ceux du mois de Mars, ect ...
La macro que j'ai faite fonctionne normalement mais à un moment l'utilisateur de la macro en fonction des articles sur lesquels il travail doit entrer le mois (qui va ensuite s'insérer dans la colonne approprié) et ce pendant la macro. Et c'est là que j'ai mis la "inputbox" mais il serait plus approprié d'utiliser une combobox.
Mais comment la présenter sur VBA.
merci