Comparaison de row pour alimentation listbox

  • Initiateur de la discussion Initiateur de la discussion ifi77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ifi77

XLDnaute Occasionnel
Bonjour @ tous,

après avoir réussi à alimenter ma listbox en fonction d'un critère j'aimerais supprimer les entrées lièes au 1er critère si il ne répondent pas au 2ème critère.
Si cela parait simple avec des références fixes mon probleme est que mes colonnes varient en fonction du choix du critere donc exit .offset(,)
J'essaye finalement de comparer le row car pour chaucune des feuilles les références des colonnes 1 et 2 sont les memes (nom et prénom).

Private Sub ComboBox2_Change()
Dim i, x, m As Variant
Dim cel As Range
sht1 = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 2)
Col1 = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
Me.ListBox1.Clear
x = 0
For i = 2 To Dlig
If Sheets(sht1).Cells(i, Col1) = Me.ComboBox2.Value Then
With Me.ListBox1
.AddItem Sht.Cells(i, 1)
.List(x, 1) = Sht.Cells(i, 2)
.List(x, 2) = Sht.Cells(i, 3)
End With
x = x + 1
End If
Next i

If Me.ComboBox3.Value <> "" Then
For i = 2 To Dlig
sht2 = Me.ComboBox3.List(Me.ComboBox3.ListIndex, 2)
Col2 = Me.ComboBox3.List(Me.ComboBox3.ListIndex, 1)
For x = Me.ListBox1.ListCount - 1 To 0 Step -1 If Sheets(sht2).Cells(i, 1).Find(Me.ListBox1.List(x), , xlValues, xlWhole).Row _
<> Sheets(sht2).Cells(i, Col2).Row Then Me.ListBox1.RemoveItem (x)

Next x

Next i
End If
End Sub

sht 1 et 2 correspond à la feuille du critère 1 et du critère 2
col 1 et 2 colonne du critère 1 et du critère 2

SI la première partie fonctionne c'est la partie ne rouge qui me pose probleme.

je vous mets la pièce jointe complete pour une meilleur compréhension si besoin.

Merci
 

Pièces jointes

Re : Comparaison de row pour alimentation listbox

Re,

alors voila j'avance tranquillement j'ai essayé cela mais quelquechose ne fonctionne pas pourtant quand je mets l'arret cela parait fonctionner????

Private Sub ComboBox2_Change()
Dim i, x, y, m As Variant
Dim cel As Range
sht1 = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 2)
Col1 = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
Me.ListBox1.Clear
x = 0
For i = 2 To Dlig
If Sheets(sht1).Cells(i, Col1) = Me.ComboBox2.Value Then
With Me.ListBox1
.AddItem Sht.Cells(i, 1)
.List(x, 1) = Sht.Cells(i, 2)
.List(x, 2) = Sht.Cells(i, 3)
End With
x = x + 1
End If
Next i

If Me.ComboBox3.Value <> "" Then
For i = 2 To Dlig
For x = Me.ListBox1.ListCount - 1 To 0 Step -1
sht2 = Me.ComboBox3.List(Me.ComboBox3.ListIndex, 2)
Col2 = Me.ComboBox3.List(Me.ComboBox3.ListIndex, 1)
y = Sheets(sht2).Cells(Sheets(sht2).Cells(i, Col2).Row, 1)
If Me.ListBox1.List(x) <> y Then
Me.ListBox1.RemoveItem (x)
End If
Next x

Next i
End If

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
464
Réponses
3
Affichages
800
Réponses
5
Affichages
617
Réponses
5
Affichages
409
Réponses
8
Affichages
614
Retour