Bug dans mon code...

pnlop

XLDnaute Occasionnel
Bonjour le forum,
Dans mon fichier exemple, il y a 2 feuilles ("articles" et "fournisseurs") et 1 UserForm.
Dans l'UF, il y a une Combobox, alimentée depuis la colonne A de la feuille "fournisseurs".
Selon le changement dans la Combobox, les textbox se modifient.
Jusque là, c'est ok.
Ensuite, toujoursdans le même Combobox, il y a une ListBox...
Celle-ci devrait être alimentée, selon le choix du Combobox, par les données situées dans la feuilles "articles", en colonne B, correspondant bien sûr en colonne A au choix de la Combobox...
C'est à ce moment là que je ne sais pas alimenter ma listbox avec ce critère sur colonne A (qui correspond au choix de la Combobox...)
Merci de votre aide!
 

Pièces jointes

  • Classeur2.xlsm
    17.7 KB · Affichages: 33
  • Classeur2.xlsm
    17.7 KB · Affichages: 28
  • Classeur2.xlsm
    17.7 KB · Affichages: 30

Paf

XLDnaute Barbatruc
Re : Bug dans mon code...

Bonjour,

une solution:

Code:
With Sheets("articles")
Dim i As Long 'déclare la variable col (ligne)

For i = 1 To .Range("A" & Rows.Count).End(xlUp).Row
    If .Cells(i, 1).Value = Me.ComboBox1.Value Then
        ListBox1.AddItem .Cells(i, 2).Value
    End If
Next
End With

remplacer le code existant à partir de With Sheets("articles")



bonne suite
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Bug dans mon code...

Bonjourt pnlop, Paf,

Et paf! Je ne suis pas le premier mais comme je l'ai fait d'une manière différente, je le transmets:

Code:
Private Sub ComboBox1_Change()

    Me.TextBox1.Text = ""
    Me.TextBox2.Text = ""
    Me.TextBox3.Text = ""
    Me.TextBox4.Text = ""
 
 If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'ON sort si pas de sélection
    Me.TextBox1 = Me.ComboBox1 'On alimente les données correspondant à la ligne
    Me.TextBox2 = Worksheets("fournisseurs").Range("C" & Me.ComboBox1.ListIndex + 1)
    Me.TextBox3 = Worksheets("fournisseurs").Range("D" & Me.ComboBox1.ListIndex + 1)
    Me.TextBox4 = Worksheets("fournisseurs").Range("E" & Me.ComboBox1.ListIndex + 1)
    
    With Sheets("articles")
    Dim i As Integer 'déclare la variable col (ligne)

    i = Me.ComboBox1.ListIndex  'définit la colonne qui allimentera la ListBox1
'alimentation de la ListBox1
    Dim Plage As Range, Cel As Range
    For Each Cel In Feuil1.Range("A:A").SpecialCells(xlCellTypeConstants)
      If Cel = ComboBox1 Then
        If Plage Is Nothing Then
          Set Plage = Cel.Offset(0, 1)
          Else
          Set Plage = Application.Union(Plage, Cel.Offset(0, 1))
        End If
      End If
    Next
    Me.ListBox1.RowSource = Plage.Address
    End With
    
End Sub
Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Bug dans mon code...

RE:

Je crois qu'il faut que tu réédites ton message initial et que tu ajoutes la mention [RESOLU] dans le titre. Pour accéder à la modification, il faut auparavant cliquer sur le bouton "Aller en mode avancé" dans le bas du message.

Au fait, quelle proposition as-tu retenue?

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet