Problème dans le 3ieme combobox

zine pef

XLDnaute Occasionnel
Bonsoir tous,tout forum
je viens au retour avec un prob de combobox3
j'ai alimenter le combo1 et puis le deuxieme combo
mais je bloque sur le troisieme combo.
je souhaite un pousse d'aide de code pour le combo3
qui affiche le nom & prenom.
merçi
 

Pièces jointes

  • 3combo.xls
    33.5 KB · Affichages: 55

Grand Chaman Excel

XLDnaute Impliqué
Re : Problème dans le 3ieme combobox

Bonsoir zinepef,

Si j'ai bien compris :confused:, tu pourrais simplement reprendre ce que tu as fait pour alimenter le combobox1 dans ton code Userform_Initialize...

Code:
Private Sub UserForm_Initialize()
Dim C As Range
For Each C In Range([A2], [A65000].End(xlUp))  ' liste non triée
     If C <> "" Then
     Me.ComboBox1.AddItem C
     Me.ComboBox1.List(Me.ComboBox1.ListCount - 1, 1) = C.Row
     End If
   Next C
   
' Pour alimenter le combobox3
For Each C In Range([C2], [C65000].End(xlUp))  ' liste non triée
     If C <> "" Then
     Me.ComboBox3.AddItem C
     Me.ComboBox3.List(Me.ComboBox3.ListCount - 1, 1) = C.Row
     End If
Next C
   
   
   For i = 1 To 4
Me.Controls("label" & i).Caption = Cells(1, i).Value
Next i

End Sub
 

JNP

XLDnaute Barbatruc
Re : Problème dans le 3ieme combobox

Bonjour le fil :),
La méthode me parrait un peu compliquée, un Dico serait plus pratique et je n'aime pas passer par les ListIndex, enfin :rolleyes:...
Code:
Private Sub ComboBox1_Change()
Dim cd As Range 'déclare la variable cd (Cellule de Début)
Dim cf As Range 'déclare la variable cf (Cellule de Fin)
Dim col As Collection 'déclare la variable col (COLlection)
Dim col2 As Collection
Dim cel As Range 'déclare la variable cel (CELlule)
ComboBox2.Clear 'vide la ComboBox2
ComboBox3.Clear
'condition : si l'élément sélectionné est le dernier de la liste
If Me.ComboBox1.ListIndex = Me.ComboBox1.ListCount - 1 Then
    'définit la cellule de début (numéro de la ligne de l'année sélectionnée), colonne C
    Set cd = Cells(Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1), 4)
    'définit la cellule de fin (dernière ligne éditée de la colonne C)
    Set cf = Range("D65536").End(xlUp)
Else 'sinon
    'définit la cellule de début (numéro de la ligne de l'année sélectionnée), colonne C
    Set cd = Cells(Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1), 4)
    'définit la cellule de fin (numéro de la ligne de l'année suivante -1), colonne C
    Set cf = Cells(Me.ComboBox1.List(Me.ComboBox1.ListIndex + 1, 1) - 1, 4)
End If 'fin de la condition
'alimentation de la collection col sans doublons
Set col = New Collection 'définit la collection col
For Each cel In Range(cd, cf) 'boucle sur toutes les cellules cel comprises entre la cellule de début et la celllule de fin
 On Error Resume Next 'en cas d'erreur passe à la cellule suivante
    col.Add cel.Value, CStr(cel.Value) 'ajoute la valeur de la cellule à la collection (un doublon provoque une erreur
Next cel 'prochaine cellule cel de la boucle
Set col2 = New Collection
For Each cel In Range(cd.Offset(0, -1), cf.Offset(0, -1))
On Error Resume Next
    col2.Add cel.Value, CStr(cel.Value)
Next cel
'alimentation de la ComboBox2
For x = 1 To col.Count 'boucle sur tous les éléments de la collection
    ComboBox2.AddItem col(x) 'ajoute l'élément de la collection à la combobox2
Next x 'prochain élément de la collection
For x = 1 To col2.Count
    ComboBox3.AddItem col2(x)
Next x
'ComboBox2.ListIndex = 0 'affiche le premier élément de la ComboBox2
   Me.TextBox1.Text = Me.ComboBox1.Text
End Sub
Bonne journée :cool:
 

zine pef

XLDnaute Occasionnel
Re : Problème dans le 3ieme combobox

Bonjour forum
Merçi Mr:Grand Chaman Excel ,JNP pour votre aide
mais ce n'ai pas que je souhaite dans combo3
explique:
1--quand je choisi l'année de combo1
combo2 s'aliment des catégorie de cette année

2--quand je choisi catégorie de combo2
combo3 s'aliment des noms du catégorie choisie

merci
 

JNP

XLDnaute Barbatruc
Re : Problème dans le 3ieme combobox

Re :),
mais ce n'ai pas que je souhaite dans combo3
explique:
1--quand je choisi l'année de combo1
combo2 s'aliment des catégorie de cette année
2--quand je choisi catégorie de combo2
combo3 s'aliment des noms du catégorie choisie
Ok, mais je ne supporte pas la complication des ListIndex, donc j'ai un peu (beaucoup) nettoyé ton fichier :p...
Seule obligation : remplir tous les champs années (ce qui est une obligation dans toute BDD :rolleyes:).
J'ai pas tenu compte des numéros, s'ils ne sont pas uniques, ils n'ont aucun intérêt :eek:...
Bonne suite :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 232
Messages
2 086 462
Membres
103 222
dernier inscrit
2BS