Combobox en "chaine"

ichigo

XLDnaute Nouveau
Bonjour,

J'espère que ma demande ne fera pas doublons. J'utilise souvent ce forum pour mes recherches sur excel et les macros et je trouve souvent la réponse à ma question, mais pas cette fois.

Je passe par un userform avec des combobox qui se "suivent".
Sur une feuille du classeur j'ai mes données sources pour mes combobox.
Sur la 1ière ligne les intitulés des colonnes, et sur les lignes suivantes, les choix possibles (cf. pièce jointe)
J'ai essayé de définir des noms à mes listes, mais le problème c'est que les données sources évoluent. Au fur et à mesure le nombre de choix et "sous-choix" augmente.

Ce que je veux c'est sélectionné dans la combobox1 le choix_1, _2 ... et qu'ensuite je n'ai plus que les valeurs correspondantes dans la combobox2.

J'espère avoir été assez clair.
Merci d'avance pour votre aide
 

Pièces jointes

  • exemple.xls
    27 KB · Affichages: 61
  • exemple.xls
    27 KB · Affichages: 66
  • exemple.xls
    27 KB · Affichages: 66

Dranreb

XLDnaute Barbatruc
Re : Combobox en "chaine"

Bonjour.
Comme ça peut être :
VB:
Dim Plg As Range
Set Plg = Feuil1.[A1].Resize(, WorksheetFunction.CountA(Feuil1.Rows(1)))
ComboBox1.List = WorksheetFunction.Transpose(Plg.Value)
VB:
Dim Plg As Range
Set Plg = Feuil1.[A2].Offset(, ComboBox1.ListIndex)
If Plg.Offset(1, 0).Value <> "" Then Set Plg = Plg.Resize(Plg.End(xlDown).Row - Plg.Row + 1)
ComboBox2.List = Plg.Value
À tester
À +
 
Dernière édition:

ichigo

XLDnaute Nouveau
Re : Combobox en "chaine"

Code:
Dim toto As Range
Set ws = Worksheets("feuil2")

Range([A1], [IV1].End(xlToLeft)).Name = "choix_1"

For Each toto In ws.Range("choix_1")
    With Me.combobox1
        .AddItem toto.Value
    End With
Next toto

J'utilise ce code pour sélectionner la 1iere ligne de la case A1 jusqu'à une case non vide.
Merci pour ta réponse rapide Dranreb.
J'utilise ton code pour la 2ième partie.
J'ai rencontré un problème au début parce que je placais le code dans userform_initialize(), et ce n'est qu'après avoir fait mon choix dans le combobox1 que je peux avoir ma sélection dans le combobox2.
J'ai donc placé ta 2ieme partie dans combobox1_click()

Merci encore !! ^^
 

Discussions similaires

Réponses
28
Affichages
1 K