Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…