Liste déroulante avec le développeur contrôle de formulaire
Fermé
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
-
5 oct. 2015 à 19:47
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 12 oct. 2015 à 11:00
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 12 oct. 2015 à 11:00
A voir également:
- Liste déroulante avec le développeur contrôle de formulaire
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Formulaire de réclamation facebook - Guide
- Controle parental pc - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
3 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
5 oct. 2015 à 20:33
5 oct. 2015 à 20:33
Bonjour,
Voici un exemple avec 3 méthodes possibles :
- Contrôle ActiveX associé à une procédure
- Contrôle de formulaire lié à une cellule
- Contrôle de formulaire associé à une macro.
https://www.cjoint.com/c/EJfsEuwe70I
A+
Voici un exemple avec 3 méthodes possibles :
- Contrôle ActiveX associé à une procédure
- Contrôle de formulaire lié à une cellule
- Contrôle de formulaire associé à une macro.
https://www.cjoint.com/c/EJfsEuwe70I
A+
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
6 oct. 2015 à 11:29
6 oct. 2015 à 11:29
Bonjour,
Je te conseille d'opter pour le contrôle ActiveX qui t'offrira plus de possibilités que le contrôle de formulaire.
Pour tes listes en cascade, tu trouveras ton bonheur ici :
http://boisgontierjacques.free.fr/pages_site/listes_cascade.htm#DVcascadeForm
Si tu as besoin d'explications, n'hésites pas à revenir à la charge :D
Éventuellement, tu peux joindre un fichier exemple avec quelques données de base et une ébauche du résultat attendu. Pour l'instant, ton projet est trop abstrait.
A+
Je te conseille d'opter pour le contrôle ActiveX qui t'offrira plus de possibilités que le contrôle de formulaire.
Pour tes listes en cascade, tu trouveras ton bonheur ici :
http://boisgontierjacques.free.fr/pages_site/listes_cascade.htm#DVcascadeForm
Si tu as besoin d'explications, n'hésites pas à revenir à la charge :D
Éventuellement, tu peux joindre un fichier exemple avec quelques données de base et une ébauche du résultat attendu. Pour l'instant, ton projet est trop abstrait.
A+
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
7 oct. 2015 à 12:20
7 oct. 2015 à 12:20
Merci Gyrus,
Voici un fichier excel avec les commentaires de ce que je veux réaliser à l'intérieur.
Je souhaiterais faire la double liste avec le formulaire + macro mais j'avoue être novice dans la programmation, (je n'ai pas réussi à reproduire la macro que tu as faite dans le message précédent, il doit y avoir une étape voir plusieurs que je rate...en gros je me suis contenté de recopier le code mais j'imagine que c'est beaucoup plus subtile que ça)
https://www.cjoint.com/c/EJhkrJHbwOd
Merci
Voici un fichier excel avec les commentaires de ce que je veux réaliser à l'intérieur.
Je souhaiterais faire la double liste avec le formulaire + macro mais j'avoue être novice dans la programmation, (je n'ai pas réussi à reproduire la macro que tu as faite dans le message précédent, il doit y avoir une étape voir plusieurs que je rate...en gros je me suis contenté de recopier le code mais j'imagine que c'est beaucoup plus subtile que ça)
https://www.cjoint.com/c/EJhkrJHbwOd
Merci
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
>
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
7 oct. 2015 à 14:35
7 oct. 2015 à 14:35
Voici un exemple de ce que tu peux faire avec une Userform (formulaire évolué).
https://www.cjoint.com/c/EJhmIA4lTtI
A+
https://www.cjoint.com/c/EJhmIA4lTtI
A+
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
8 oct. 2015 à 13:22
8 oct. 2015 à 13:22
Merci bien Gyrus! J'ai observé ton programme et j'essaye de le décrypter.
J'ai déjà des questions :
Y a t'il un intérêt à faire une fonction recherche comme tu l'as fait plutôt que d'utiliser un bouton classique pour faire apparaître l'userform?
Je n'arrive pas à comprendre comment tu définis la listes à laquelle tu fais appel (Me.CB_Machine.ListIndex + 3) ??? je ne la vois nul part et du coup je coince.
Merci d'avance
J'ai déjà des questions :
Y a t'il un intérêt à faire une fonction recherche comme tu l'as fait plutôt que d'utiliser un bouton classique pour faire apparaître l'userform?
Je n'arrive pas à comprendre comment tu définis la listes à laquelle tu fais appel (Me.CB_Machine.ListIndex + 3) ??? je ne la vois nul part et du coup je coince.
Merci d'avance
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
>
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
8 oct. 2015 à 13:53
8 oct. 2015 à 13:53
Y a t'il un intérêt à faire une fonction recherche comme tu l'as fait plutôt que d'utiliser un bouton classique pour faire apparaître l'userform?
J'ai du mal à saisir le sens de ta question car j'ai justement utilisé un bouton classique (controle de formulaire) pour commander l'affichage de l'USF.
Ce bouton de commande est associé à la procédure Recherche (macro visible sous Modules/Module1).
Je n'arrive pas à comprendre comment tu définis la listes à laquelle tu fais appel (Me.CB_Machine.ListIndex + 3) ??? je ne la vois nul part et du coup je coince.
Me.CB_Machine est la ComboBox présente dans l'USF (Me).
ListIndex identifie l'élément sélectionné , le premier index ayant pour valeur 0, le deuxième 1, etc.
La ComboBox ayant été renseignée avec la liste contenue dans la plage Base!A3:A6 , la ligne de la base qui correspond à l'élément de la ComboBox peut être trouvée avec la relation :
Ligne = Me.CB_Machine.ListIndex + 3
Exemple :
Index 0 <=> Ligne 3 ( MACHINE A)
Index 1 <=> Ligne 4 ( MACHINE B)
etc.
A+
J'ai du mal à saisir le sens de ta question car j'ai justement utilisé un bouton classique (controle de formulaire) pour commander l'affichage de l'USF.
Ce bouton de commande est associé à la procédure Recherche (macro visible sous Modules/Module1).
Je n'arrive pas à comprendre comment tu définis la listes à laquelle tu fais appel (Me.CB_Machine.ListIndex + 3) ??? je ne la vois nul part et du coup je coince.
Me.CB_Machine est la ComboBox présente dans l'USF (Me).
ListIndex identifie l'élément sélectionné , le premier index ayant pour valeur 0, le deuxième 1, etc.
La ComboBox ayant été renseignée avec la liste contenue dans la plage Base!A3:A6 , la ligne de la base qui correspond à l'élément de la ComboBox peut être trouvée avec la relation :
Ligne = Me.CB_Machine.ListIndex + 3
Exemple :
Index 0 <=> Ligne 3 ( MACHINE A)
Index 1 <=> Ligne 4 ( MACHINE B)
etc.
A+
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
9 oct. 2015 à 10:41
9 oct. 2015 à 10:41
Merci!
Voici un fichier avec une tentative (désespérée lol).
https://www.cjoint.com/c/EJjiNvtgSwd
Je galère vraiment, je n'arrive même pas à le faire sur la feuille de base sans formulaire (ce que je voulais faire à la base).
Pour le bouton tu verras comment j'ai fait, en gros j'ai utilisé un bouton activex associé à la commande show, c'est pour ça que je te posais la question.
Private Sub CommandButton21_Click()
UserForm1.Show
End Sub
Pour la première commande; entrer la donnée du coût en fonction de la liste déroulante j'ai fait :
Private Sub ComboBox1_Change()
Range("M7").Value = Cells(ComboBox1.ListIndex + 3, 2)
End Sub
M7 est la case visée que je veux remplir
Si j'ai bien compris 3 me donne la 3ème ligne et 2 la deuxième colonne
C'est surement faux car ça ne marche pas (lol mon unique certitude dans ce mail)
Je vois que pour ton formulaire tu définis tes listes dans une commande qui s'appelle Initialize.
Cette commande est elle uniquement spécifique aux formulaires?
Sont but est-il uniquement de remplir les 2 listes déroulantes?
Merci et désolé d'être un boulet.
Voici un fichier avec une tentative (désespérée lol).
https://www.cjoint.com/c/EJjiNvtgSwd
Je galère vraiment, je n'arrive même pas à le faire sur la feuille de base sans formulaire (ce que je voulais faire à la base).
Pour le bouton tu verras comment j'ai fait, en gros j'ai utilisé un bouton activex associé à la commande show, c'est pour ça que je te posais la question.
Private Sub CommandButton21_Click()
UserForm1.Show
End Sub
Pour la première commande; entrer la donnée du coût en fonction de la liste déroulante j'ai fait :
Private Sub ComboBox1_Change()
Range("M7").Value = Cells(ComboBox1.ListIndex + 3, 2)
End Sub
M7 est la case visée que je veux remplir
Si j'ai bien compris 3 me donne la 3ème ligne et 2 la deuxième colonne
C'est surement faux car ça ne marche pas (lol mon unique certitude dans ce mail)
Je vois que pour ton formulaire tu définis tes listes dans une commande qui s'appelle Initialize.
Cette commande est elle uniquement spécifique aux formulaires?
Sont but est-il uniquement de remplir les 2 listes déroulantes?
Merci et désolé d'être un boulet.
cerebrox
Messages postés
16
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
6 oct. 2015 à 06:16
6 oct. 2015 à 06:16
Bonjour Gyrus,
Un grand merci pour avoir pris cette peine, ça m'aide énormément.
Y a t'il un intérêt quelconque à utiliser une méthode plutôt qu'une autre? (j'en utilisais moi même une différente des 3 proposées)
Quelle méthode dois-je utiliser si je veux réaliser cela :
https://forums.commentcamarche.net/forum/affich-32610410-liste-deroulante-en-fonction-d-une-autre-liste-deroulante
En effet je bloque sur la réalisation d'une liste en fonction d'une autre liste et je choisirai la méthode me permettant de réaliser cela.
Pour la 3 ème version avec VBA, j'ai essayé de la reproduire sur une autre feuille mais lorsque je rentre la formule dans VBA puis retourne sur ma feuille rien ne se produit (la liste déroulante ne se remplie pas et n'exécute pas d'action dans la case saisie (K9) pour toi).
Y a t'il une activation ou quelque chose dans ce genre pour valider la formule?
Comment dois-je ajouter une autre formule, si je veux par exemple ajouter une cible autre que K9 dans un range "C" ou par exemple un range sur une autre feuille.
Pour rajouter une ligne, dois-je recopier la formule complète (de sub to end sub)
Sub Macro_Formulaire()
With Feuil1
.Range("K9").Value = .Range("B" & .Shapes("Zone combinée 3").ControlFormat.ListIndex)
End With
End Sub
Sub Macro_Formulaire()
With Feuil1
.Range("K10").Value = .Range("C" & .Shapes("Zone combinée 3").ControlFormat.ListIndex)
End With
End Sub
Et comment faire si C est sur une autre feuille?
Un immense merci si tu pouvais m'aiguiller!
Un grand merci pour avoir pris cette peine, ça m'aide énormément.
Y a t'il un intérêt quelconque à utiliser une méthode plutôt qu'une autre? (j'en utilisais moi même une différente des 3 proposées)
Quelle méthode dois-je utiliser si je veux réaliser cela :
https://forums.commentcamarche.net/forum/affich-32610410-liste-deroulante-en-fonction-d-une-autre-liste-deroulante
En effet je bloque sur la réalisation d'une liste en fonction d'une autre liste et je choisirai la méthode me permettant de réaliser cela.
Pour la 3 ème version avec VBA, j'ai essayé de la reproduire sur une autre feuille mais lorsque je rentre la formule dans VBA puis retourne sur ma feuille rien ne se produit (la liste déroulante ne se remplie pas et n'exécute pas d'action dans la case saisie (K9) pour toi).
Y a t'il une activation ou quelque chose dans ce genre pour valider la formule?
Comment dois-je ajouter une autre formule, si je veux par exemple ajouter une cible autre que K9 dans un range "C" ou par exemple un range sur une autre feuille.
Pour rajouter une ligne, dois-je recopier la formule complète (de sub to end sub)
Sub Macro_Formulaire()
With Feuil1
.Range("K9").Value = .Range("B" & .Shapes("Zone combinée 3").ControlFormat.ListIndex)
End With
End Sub
Sub Macro_Formulaire()
With Feuil1
.Range("K10").Value = .Range("C" & .Shapes("Zone combinée 3").ControlFormat.ListIndex)
End With
End Sub
Et comment faire si C est sur une autre feuille?
Un immense merci si tu pouvais m'aiguiller!