• Initiateur de la discussion Initiateur de la discussion vmax67
  • 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 !

vmax67

XLDnaute Occasionnel
Bonjour à tous,
je bute sur un soucis d'alimentation de mes combobox.
Le premier combo doit être alimenté par la colonne B par ordre croissant sans doublon.
Le deuxième combo doit être alimenté après validation du combo1 par la colonne C par ordre croissant
ensuite après validation du combo2 ont alimente la combo3 par la colonne D par ordre croissant et pour
terminer la textbox 1 doit afficher la valeur de la colonne E après validation de combo3.

Peut'on également concaténer dans la combo 1 la valeur numérique de la colonne B avec sont équivalence texte
de l'onglet région.
exemple le combo propose 1 ça donne 1 avec texte Alsace (info dans onglet région)
idem pour région si 68 ça donne 68 avec texte Rhône (info dans onglet Cdb)

Voir fichier
 

Pièces jointes

Re : Combobox en cascade

Bonjour.
Ça j'avais fini par comprendre que le numéro auquel est associé le nom de la ville est en A.
Oui mais ensuite, parlez vous de la facitilté de choix, ou de ce que vous voulez restituer, suite à ce choix, lors de lutilisation du bouton Valider ? Ce sont deux choses complètement différentes, même si pour l'instant vous n'avez imaginé que restituer simplement les valeurs de ComboBox, ce qu'il ne faut surtout pas faire en général, de mon point de vue, ne serait ce que parce que ce sont toujours des textes contrairement parfois aux infos d'origine. Est-ce que 6 ComboBox, pouvant être renseignés dans n'importe quel ordre, chacun réduisant les choix possibles dans les autres, laissant la possibilité de choisir ou taper aussi bien les noms que les numéros, ne serait pas la meilleure solution ?
 
Dernière édition:
Re : Combobox en cascade

Voudriez vous s'il vous plait répondre à ma dernière question, afin que je ne m'y attaque pas pour rien si pour quelque obscure raison cela ne conviendrait pas. Ou essayez de me décrire ce que vous aurez vraisemblablement en tête au moment de faire un choix dans l'Uf. Seront-ce les noms issus d'une conversation, ou plutôt les numéros pris d'un document écrit juste à coté (on a plus rarement des numéros en tête), ou tantôt l'un tantôt l'autre ?
 
Re : Combobox en cascade

Pour faire simple
1 votre code est complet, comme dit il me manque que le nom de la ville à côté du n° de l'association
dans le combo3.
Pour faire simple cette application me sert à faire des statistiques qui sont importées depuis un fichier csv.
Ces statistiques concernent des associations au niveau national

Donc mes critères de recherche sont les suivants :

1 choix : la région = comboregion (cette partie fonctionne exemple 01 - Alsace)
2 choix département = combo département (cette partie fonctionne exemple 68 - Rhône)
3 choix association = combonumville (cette partie fonctionne mais partiellement car il manque le nom de la ville en colonne "E")
Cette colonne ne contient que 584 valeurs.


Bien cordialement.
 
Re : Combobox en cascade

Bon eh bien faites comme ça, qu'est-ce que vous voulez que je vous dise.
VB:
Private Sub UserForm_Initialize()
Dim Tv(), Région(1 To 50) As String, Déptmt As New Dictionary, NumVille As New Dictionary, L As Long, N As Long, Z As String
Set CC = New ComboBoxCasc
CC.Plage Feuil3.[A2]
CC.Add Me.Region, "B"
CC.Add Me.Département, "C"
CC.Add Me.NumVille, "A"
'CC.Actualiser remplacé par :

Tv = PlgUti(Feuil4.[A1]).Value
For L = 1 To UBound(Tv): Région(Tv(L, 1)) = Format(Tv(L, 1), "00") & " - " & Tv(L, 2): Next L

Tv = PlgUti(Feuil5.[A2]).Value
For L = 1 To UBound(Tv): Z = Tv(L, 1): If Len(Z) < 2 Then Z = "0" & Z
   Déptmt.Add Tv(L, 1), Z & " - " & Tv(L, 2): Next L

Tv = PlgUti(Feuil3.[A2]).Value
For L = 1 To UBound(Tv): NumVille.Add Tv(L, 1), Tv(L, 1) & " - " & Tv(L, 5): Next L

With CC.PlgTablo: CréerTabDicoSpécif .Columns("B"), .Columns("C"), .Columns("A"): End With
For L = 1 To UBound(TabDico)
   TabDico(L, 1) = Région(TabDico(L, 1))
   TabDico(L, 2) = Déptmt(TabDico(L, 2))
   TabDico(L, 3) = NumVille(TabDico(L, 3)): Next L
CC.DicArbo LeDictArbo
End Sub
Mais ne venez pas vous plaindre parce que vos numéros sont par ordre alphanumérique au lieu d'être par ordre numérique.
 
- 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

Discussions similaires

Réponses
40
Affichages
1 K
  • Question Question
Power Query tri powerquery
Réponses
9
Affichages
990
  • Question Question
Microsoft 365 Macro VBA - Excel
Réponses
12
Affichages
626
Réponses
4
Affichages
935
Réponses
4
Affichages
742
Retour