Bonjour et bon week end à tous.
je viens soliciter un petit coup de main j'utilise une recherche par USF qui me permet de rechecher sur plusieur feuilles et plusieur plages de cellule un mot clef.
mes feuilles sert à géré des formations en collone E (les dates des formation initial).
je voudais que mon code me permette afficher uniquement les lignes ou la celulle correspondante de la colonne E soit renseigné.
Exemple:
si je recherche le mot lulu sur mes 3 formations dans ma listview celui ci devras me faire apparaitre uniquement les lignes dont la cellule E est renseignée d'une date.
merci d'avance de votre aide
je viens soliciter un petit coup de main j'utilise une recherche par USF qui me permet de rechecher sur plusieur feuilles et plusieur plages de cellule un mot clef.
mes feuilles sert à géré des formations en collone E (les dates des formation initial).
je voudais que mon code me permette afficher uniquement les lignes ou la celulle correspondante de la colonne E soit renseigné.
Exemple:
si je recherche le mot lulu sur mes 3 formations dans ma listview celui ci devras me faire apparaitre uniquement les lignes dont la cellule E est renseignée d'une date.
merci d'avance de votre aide
Code:
Sub recherche()
ListView3.ListItems.Clear
Dim Ind As Long, DLig As Long, sht As Worksheet
With ListView3
With .ColumnHeaders
.Clear
.Add , , " Source", 0, lvwColumnLeft '/// on met la largeur de colonne à 0
.Add , , "N°", 10
.Add , , "Nom", 80
.Add , , "Pénom", 80
.Add , , "Service", 90, 2
.Add , , " date Derniere Formation", 90, 2
.Add , , "Date limite recyclage", 90, 2
.Add , , "Prévision Formation", 90, 2
.Add , , "Information complémentaire", 100, 2
.Add , , "Commentaire", 100, 2
.Add , , "NDLR", 60, 2
.Add , , "Formation", 120, 2
'.Add , , "Alerte Péremption", 80, 2
End With
.View = lvwReport
.FullRowSelect = False
End With
Dim S As Worksheet
Dim var
Dim i&
Dim j&
Dim K&
Dim cpt&
Dim Tbl()
Dim bool As Boolean
If TextBox1 = "" Then
ListView3.ListItems.Clear
Exit Sub
End If
For Each S In ThisWorkbook.Worksheets
If Left(S.Name, 9) = "FORMATION" Then '/// on ne fait la recherche que sur les feuilles dont le nom commence poar FORMATION
var = S.Range("A5:L" & S.[a65536].End(xlUp).Row)
For i& = 1 To UBound(var, 1)
For j& = 1 To UBound(var, 2)
bool = False
If CheckBox1 Then
If CheckBox2 Then
If var(i&, j&) = TextBox1 Then bool = True
Else
If var(i&, j&) Like "*" & TextBox1 & "*" Then bool = True
End If
Else
If CheckBox2 Then
If UCase(var(i&, j&)) = UCase(TextBox1) Then bool = True
Else
If UCase(var(i&, j&)) Like UCase("*") & UCase(TextBox1) & UCase("*") Then bool = True
End If
End If
If bool Then
cpt& = cpt& + 1
ReDim Preserve Tbl(1 To 13, 1 To cpt&)
Tbl(1, cpt&) = S.Name & " L" & i& + 1 & " C" & j& 'nom de la feuille, n° ligne, n° colonne
For K& = 1 To UBound(var, 2)
Tbl(K& + 1, cpt&) = var(i&, K&)
Next K&
Exit For
End If
Next j&
Next i&
End If '///
Next S
If cpt& = 0 Then
ListView3.ListItems.Clear
Exit Sub
End If
With ListView3
.ListItems.Clear
.View = lvwReport
.FullRowSelect = True
.Gridlines = False
For i& = 1 To UBound(Tbl, 2)
.ListItems.Add , , Tbl(1, i&)
For j& = 2 To UBound(Tbl, 1)
.ListItems(.ListItems.Count).ListSubItems.Add , , Tbl(j&, i&)
Next j&
Next i&
End With
End Sub