Private Sub UserForm_Initialize()
' Définir la feuille
Set wsFeuil = ThisWorkbook.Worksheets("Base")
' Initialiser les listes des critères
Call InitCombo(wsFeuil, RechercheC1, "F")
Call InitCombo(wsFeuil, RechercheC2, "I")
' Modif du 05/08 - Initialisation du nombre de colonnes dans la liste
With ListBoxLoc
.ColumnCount = 33
End With
' Libérer l'instance
Set wsFeuil = Nothing
End Sub
Private Sub RechercheC1_Change()
' Rechercher les données en fonction des critères sélectionnés
Call Rechercher
End Sub
Private Sub Rechercher()
' Rechercher les données en fonction des critères 1 et 2
Dim rCel As Range
Dim lgLig As Long
Dim lgLigDeb As Long
Dim Critere1 As String
Dim Critere2 As String
Dim wsFeuil As Worksheet
' Définir la feuille
Set wsFeuil = ThisWorkbook.Worksheets("Base")
Critere1 = "*"
If RechercheC1.Value <> "" Then Critere1 = RechercheC1.Value
Critere2 = "*"
If RechercheC2.Value <> "" Then Critere2 = RechercheC2.Value
ListBoxLoc.Clear
' Boucle de la 2me à la dernière ligne de la feuille Feuil1
For lgLigDeb = 2 To wsFeuil.Range("F" & wsFeuil.Cells.Rows.Count).End(xlUp).Row
If wsFeuil.Range("F" & lgLigDeb).Value Like Critere1 And wsFeuil.Range("I" & lgLigDeb).Value Like Critere2 Then
With ListBoxLoc
.AddItem wsFeuil.Range("F" & lgLigDeb).Value
.List(.ListCount - 1, 1) = wsFeuil.Range("B" & lgLigDeb).Value
.List(.ListCount - 1, 2) = wsFeuil.Range("C" & lgLigDeb).Value
.List(.ListCount - 1, 3) = wsFeuil.Range("D" & lgLigDeb).Value
.List(.ListCount - 1, 4) = wsFeuil.Range("E" & lgLigDeb).Value
.List(.ListCount - 1, 5) = wsFeuil.Range("F" & lgLigDeb).Value
.List(.ListCount - 1, 6) = wsFeuil.Range("G" & lgLigDeb).Value
.List(.ListCount - 1, 7) = wsFeuil.Range("H" & lgLigDeb).Value
.List(.ListCount - 1, 8) = wsFeuil.Range("I" & lgLigDeb).Value
.List(.ListCount - 1, 9) = wsFeuil.Range("J" & lgLigDeb).Value
.List(.ListCount - 1, 10) = wsFeuil.Range("K" & lgLigDeb).Value
.List(.ListCount - 1, 11) = wsFeuil.Range("L" & lgLigDeb).Value
.List(.ListCount - 1, 12) = wsFeuil.Range("M" & lgLigDeb).Value
.List(.ListCount - 1, 13) = wsFeuil.Range("N" & lgLigDeb).Value
.List(.ListCount - 1, 14) = wsFeuil.Range("O" & lgLigDeb).Value
.List(.ListCount - 1, 15) = wsFeuil.Range("P" & lgLigDeb).Value
.List(.ListCount - 1, 16) = wsFeuil.Range("Q" & lgLigDeb).Value
.List(.ListCount - 1, 17) = wsFeuil.Range("R" & lgLigDeb).Value
.List(.ListCount - 1, 18) = wsFeuil.Range("S" & lgLigDeb).Value
.List(.ListCount - 1, 19) = wsFeuil.Range("T" & lgLigDeb).Value
.List(.ListCount - 1, 20) = wsFeuil.Range("U" & lgLigDeb).Value
.List(.ListCount - 1, 21) = wsFeuil.Range("V" & lgLigDeb).Value
.List(.ListCount - 1, 22) = wsFeuil.Range("W" & lgLigDeb).Value
.List(.ListCount - 1, 23) = wsFeuil.Range("Y" & lgLigDeb).Value
.List(.ListCount - 1, 24) = wsFeuil.Range("Z" & lgLigDeb).Value
.List(.ListCount - 1, 25) = wsFeuil.Range("AA" & lgLigDeb).Value
.List(.ListCount - 1, 26) = wsFeuil.Range("AB" & lgLigDeb).Value
.List(.ListCount - 1, 27) = wsFeuil.Range("AC" & lgLigDeb).Value
.List(.ListCount - 1, 28) = wsFeuil.Range("AD" & lgLigDeb).Value
.List(.ListCount - 1, 29) = wsFeuil.Range("AE" & lgLigDeb).Value
.List(.ListCount - 1, 30) = wsFeuil.Range("AF" & lgLigDeb).Value
.List(.ListCount - 1, 31) = wsFeuil.Range("AG" & lgLigDeb).Value
.List(.ListCount - 1, 32) = wsFeuil.Range("AH" & lgLigDeb).Value
.List(.ListCount - 1, 33) = wsFeuil.Range("AI" & lgLigDeb).Value
.List(.ListCount - 1, 34) = lgLigDeb
ReDim Preserve mes_lignes(lgLig)
mes_lignes(lgLig) = lgLigDeb
lgLig = lgLig + 1
End With
End If
Next lgLigDeb
'exemple à retirer
' For i = LBound(mes_lignes) To UBound(mes_lignes)
' MsgBox "remplissage tableau ligne = " & mes_lignes(i)
' Next
' Libérer l'instance de la feuille
Set wsFeuil = Nothing
End Sub