probleme avec combobox

davidg

XLDnaute Nouveau
bonjour

mon probleme est que mes combobox ne se remplissent pas
je ne sais pas pourquoi

voici mon code
Code:
Option Explicit

Dim Ws As Worksheet
Dim NbLignes As Integer

'Les données sont dans les colonnes A à D, d'un onglet nommé "Base".
'La procédure effectue un remplissage conditionnel des Combobox en fonction de
'ce qui est sélectionnée dans le contrôle précédent:
'La sélection du ComboBox1 (données colonne A) définit le contenu du ComboBox2 (données colonne B) ,
'La sélection du ComboBox2 définit le contenu du ComboBox3 (données colonne C) …etc...
'

Private Sub UserForm1_Initialize()
    'Définit la feuille contenant les données
    Set Ws = Worksheets("articles 2")
    'Définit le nombre de lignes dans la colonne A
    NbLignes = Ws.Range("b65536").End(xlUp).Row
    
    'Remplissage du ComboBox1
    Alim_Combo 1
    
End Sub


Private Sub ComboBox1_Change()
    'Remplissage Combo2
    Alim_Combo 2, ComboBox1.Value
End Sub




'Procédure pour alimenter les ComboBox
Private Sub Alim_Combo(CbxIndex As Integer, Optional Cible As Variant)
    Dim j As Integer
    Dim Obj As Control
    
    'Définit le ComboBox à remplir
    Set Obj = Me.Controls("ComboBox" & CbxIndex)
    'Supprime les anciennes données
    Obj.Clear
    
    'alimente le Combobox initial (Combobox1)
    If CbxIndex = 1 Then
        'Boucle sur les lignes de la colonne A (à partir de la 2eme ligne)
        For j = 6 To NbLignes
            Obj = Ws.Range("b" & j)
            'Remplit le ComboBox sans doublons
            If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("b" & j)
        Next j
    Else
        'Alimentation conditionnelle des autres Combobox en fonction de
        'ce qui est sélectionnée dans le contrôle précédent:
        '(La sélection du ComboBox1 définit le contenu du ComboBox2,
        'La sélection du ComboBox2 définit le contenu du ComboBox3 …etc...)
        For j = 2 To NbLignes
            If Ws.Range("b" & j).Offset(0, CbxIndex - 2) = Cible Then
                Obj = Ws.Range("b" & j).Offset(0, CbxIndex - 1)
                If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("b" & j).Offset(0, CbxIndex - 1)
            End If
        Next j
   End If

merci pour votre aide

cordialement
 

Pièces jointes

  • devis et facture version 15 - Copie.xlsm
    201.1 KB · Affichages: 73

Discussions similaires

Réponses
11
Affichages
298

Statistiques des forums

Discussions
312 323
Messages
2 087 299
Membres
103 512
dernier inscrit
sisi235