[VBA] Propriété ComboBox
Résolu/Fermé
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
-
7 juil. 2010 à 11:06
Palteza Messages postés 79 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 6 septembre 2014 - 13 juil. 2010 à 09:44
Palteza Messages postés 79 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 6 septembre 2014 - 13 juil. 2010 à 09:44
A voir également:
- Propriétés combobox vba
- Affichez les propriétés du fichier que vous voyez sur l’écran ci-dessous. qui est l’auteur du fichier ? ✓ - Forum Windows
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba dépassement de capacité ✓ - Forum Excel
11 réponses
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
7 juil. 2010 à 14:04
7 juil. 2010 à 14:04
Je remonte
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 7/07/2010 à 16:56
Modifié par lermite222 le 7/07/2010 à 16:56
Bonjour,
Non, ce n'est pas possible naturellement, mais tu peu
Voir cette astuce pour l'obtenir.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Non, ce n'est pas possible naturellement, mais tu peu
Voir cette astuce pour l'obtenir.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
8 juil. 2010 à 11:50
8 juil. 2010 à 11:50
Bonjour lermitte et merci pour la réponse,
En fait, en me passant cette astuce, tu as du comprendre que ça se passait sur 2 Combos, mais c'est sur qu'une (quand je choisis un des 3 découpages, alors cette même combo se charge de nouvelles valeurs). Je te colle le code, tu comprendras surement mieux. Et donc je suppose qu'il suffit de mettre la fonction DropDown à un endroit dans la macro, mais je ne trouve pas où :
En fait, en me passant cette astuce, tu as du comprendre que ça se passait sur 2 Combos, mais c'est sur qu'une (quand je choisis un des 3 découpages, alors cette même combo se charge de nouvelles valeurs). Je te colle le code, tu comprendras surement mieux. Et donc je suppose qu'il suffit de mettre la fonction DropDown à un endroit dans la macro, mais je ne trouve pas où :
Option Explicit Private Sub ComboBox1_Change() Dim Plage As Range Dim choix As String Set xlBook = Workbooks("10CQ_MERIGNAC_INSEE_2006.xls") Select Case ComboBox1.Value Case Is = "Découpages INSEE" ComboBox1.Clear With xlBook.Sheets("Données") Set Plage = .Range("B1:B29") End With ComboBox1.List = Plage.Value Case Is = "Découpages Conseil de Quartier" ComboBox1.Clear With xlBook.Sheets("Données") Set Plage = .Range("B31:B42") End With ComboBox1.List = Plage.Value Case Is = "Découpages Mérignac/CUB/Gironde" ComboBox1.Clear With xlBook.Sheets("Données") Set Plage = .Range("B44:B48") End With ComboBox1.List = Plage.Value Case Is = "Retour" ComboBox1.Clear With xlBook.Sheets("Données") Set Plage = .Range("A1:A3") End With ComboBox1.List = Plage.Value End Select choixcombo1 = ComboBox1.Value End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 8/07/2010 à 15:04
Modifié par lermite222 le 8/07/2010 à 15:04
Re,
en premier lieu tu met beaucoups trop de ligne de code pour faire ce que tu veux..
serait avantageusement remplacer par...
Et effectivement, le code indiquer devvait se trouver juste avant le End Sub
J'ai pas testé, si prob, tu dis je verais plus loin.
Remarque: Quand tu reçois une modif dans le Combo1 c'est le Combo1 que tu modifie... C'est juste ??
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
en premier lieu tu met beaucoups trop de ligne de code pour faire ce que tu veux..
Select Case ComboBox1.Value Case Is = "Découpages INSEE" ComboBox1.Clear With xlBook.Sheets("Données") Set Plage = .Range("B1:B29") End With ComboBox1.List = Plage.Value Case Is .....
serait avantageusement remplacer par...
With xlBook.Sheets("Données") Select Case ComboBox1.Value Case Is = "Découpages INSEE" ComboBox1.RowSource = .Range("B1:B29") Case Is .....
Et effectivement, le code indiquer devvait se trouver juste avant le End Sub
J'ai pas testé, si prob, tu dis je verais plus loin.
Remarque: Quand tu reçois une modif dans le Combo1 c'est le Combo1 que tu modifie... C'est juste ??
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
Modifié par Palteza le 8/07/2010 à 15:51
Modifié par Palteza le 8/07/2010 à 15:51
* Oui c'est exactement ça : "Quand tu reçois une modif dans le Combo1 c'est le Combo1 que tu modifie"
* En remplaçant mon code par RowSource (qui allègerait bien en effet), il me laisse une "incompatibilité de type" sur la ligne
* Ensuite ComboBox1.DropDown ne fonctionne pas non plus juste avant le End Sub
* En remplaçant mon code par RowSource (qui allègerait bien en effet), il me laisse une "incompatibilité de type" sur la ligne
ComboBox1.RowSource = .Range("B1:B29")
* Ensuite ComboBox1.DropDown ne fonctionne pas non plus juste avant le End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 juil. 2010 à 13:20
9 juil. 2010 à 13:20
Tu peu mettre le code que tu as dans l'événement du combo ?
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
9 juil. 2010 à 14:05
9 juil. 2010 à 14:05
Option Explicit Private Sub ComboBox1_Change() Dim Plage As Range Dim choix As String Set xlBook = Workbooks("10CQ_MERIGNAC_INSEE_" & Annee & ".xls") With xlBook.Sheets("Données") Select Case ComboBox1.Value Case Is = "Découpages INSEE" ComboBox1.RowSource = .Range("B1:B29") Case Is = "Découpages Conseil de Quartier" ComboBox1.RowSource = .Range("B31:B42") Case Is = "Découpages Mérignac/CUB/Gironde" ComboBox1.RowSource = .Range("B44:B48") Case Is = "Retour" ComboBox1.RowSource = .Range("A1:A3") End Select End With choixcombo1 = ComboBox1.Value ComboBox1.DropDown End Sub
Private Sub UserForm_Initialize() Dim Plage As Range Set xlBook = Workbooks("10CQ_MERIGNAC_INSEE_" & Annee & ".xls") With xlBook.Sheets("Données") Set Plage = .Range("A1:A3") End With ComboBox1.List = Plage.Value ComboBox2.List = Plage.Value End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 juil. 2010 à 23:19
9 juil. 2010 à 23:19
Je me suis trompé dans le raccourcissement...
En ce qui concerne l'ouverture du combo ça ne marche pas si tu veux réouvrir le même combo.
Ca me paraît quand même bizarre que c'est celui là que tu réinitialise.
Et dans ta sélection des "Case Is" tu en met 4 alors que tu n'a que 3 données
Autre remarque : tu met les mêmes données dans Combo1 et 2 ?
A+
With xlBook.Sheets("Données") Select Case ComboBox1.Value Case Is = "Découpages INSEE" ComboBox1.List= .Range("B1:B29").value Case Is .....
En ce qui concerne l'ouverture du combo ça ne marche pas si tu veux réouvrir le même combo.
Ca me paraît quand même bizarre que c'est celui là que tu réinitialise.
Et dans ta sélection des "Case Is" tu en met 4 alors que tu n'a que 3 données
Autre remarque : tu met les mêmes données dans Combo1 et 2 ?
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
10 juil. 2010 à 13:41
10 juil. 2010 à 13:41
Contrairement a ce que je dis dans mon poste précédant, ça fonctionne normalement même si ont réouvre le même Combo, tu m'a induit en erreur avec ta question Où je met le code alors que c'est tout a fait clair dans le tuto.
Ca ne m'empèche pas de penser que tu programme drôledemment.
A+
Ca ne m'empèche pas de penser que tu programme drôledemment.
A+
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
Modifié par Palteza le 12/07/2010 à 10:01
Modifié par Palteza le 12/07/2010 à 10:01
C'est surtout que je programme quasi en autodidacte, donc les structures doivent être lourdes oui!
En effet, mes combos 1 et 2 sont identiques (car l'utilisateur doit effectuer 2 choix), c'est ce pourquoi les changements effectués sur chaque combo entraînent des changements sur la même.
Pour l'hisoire du Case Is 4 (Case Is Retour), c'est que dans chaque 2nd série de données (après avoir fait un des 3 choix), il y en fin de liste un "Retour", pour pouvoir revenir au choix initial des 3.
Dans cette histoire, tu n'as pas d'idées ou placer ce DropDown (bien qu'affiché dans mon code plus haut, il n'opère pas)? Car le tuto n'est pas adaptable à mon cas non?
En effet, mes combos 1 et 2 sont identiques (car l'utilisateur doit effectuer 2 choix), c'est ce pourquoi les changements effectués sur chaque combo entraînent des changements sur la même.
Pour l'hisoire du Case Is 4 (Case Is Retour), c'est que dans chaque 2nd série de données (après avoir fait un des 3 choix), il y en fin de liste un "Retour", pour pouvoir revenir au choix initial des 3.
Dans cette histoire, tu n'as pas d'idées ou placer ce DropDown (bien qu'affiché dans mon code plus haut, il n'opère pas)? Car le tuto n'est pas adaptable à mon cas non?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 juil. 2010 à 17:52
12 juil. 2010 à 17:52
Non d'une pipe, c'est quand même expliquer !!!
Bon je vais quand même développer..
Ajoute le code suivant a la fin de TON code
Ensuite en dessous du End Sub tu ajoute...
J'espère que cette fois-çi se sera plus clair. :D
A+
Bon je vais quand même développer..
Ajoute le code suivant a la fin de TON code
Private Sub ComboBox1_Change() .... .... choixcombo1 = ComboBox1.Value ComboBox1.SetFocus SendKeys "^(F4)" End Sub
Ensuite en dessous du End Sub tu ajoute...
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 16 Then ComboBox1.DropDown End If End Sub
J'espère que cette fois-çi se sera plus clair. :D
A+
Palteza
Messages postés
79
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
6 septembre 2014
3
13 juil. 2010 à 09:44
13 juil. 2010 à 09:44
Oui j'avoue que là j'ai un peu abusé de ta bonté ^^' ... j'avais oublié d'incorporer SetFocus et SendKeys dans le Change ...
Merci pour tout lermite :)
Merci pour tout lermite :)