Grand merci Dan de t'être penché sur mon problème. Malheureusement je n'y arrive toujours pas tt seul. Je joint mon fichier en pj peut être que ça sera plus parlant
En fait dans votre ligne If CStr(C.Offset(, 1)) = "Offre" And CStr(C.Offset(, 2)) = "Ville" Then je ne comprends pas pourquoi vous utilisez "Offre" et "Ville" ??
Pour aller au plus simple sans modifier ce que vous avez actuellement, modifiez comme expliqué ci-dessous :
Dans le code Sub ListviewCritere..., juste en dessous de la ligne --> .Gridlines = False remplacez toutes les lignes par ceci :
ligne = 0
For Each C In f.Range("A2:A" & Lr)
If C.Offset(0, 1) = ComboBox3.Value And C.Offset(0, 2) = ComboBox4.Value Then
.ListItems.Add , , C
For i = 1 To 24
.ListItems(ligne + 1).ListSubItems.Add , , C.Offset(, i)
Next i
ligne = ligne + 1
End If
Next C
End With
If ligne = 0 Then MsgBox "Pas de correspondance"
Set f = Nothing
End Sub
Dites moi.
NB : un détail mais vous avez une ligne vide dans vos deux combobox. C'est inutile... Donc dans le code cmbfi enlever le +1 à cette ligne --> For j = 2 To O.Range("B65536").End(xlUp).Row +1
Cordialement