Bonjour chers tous! j'ai un travail à réaliser sur le suivi. pour cela j'avais avec un code VBA facilité les recherches en ayant toutes les années dans un seul fichier Excel or l'exigence aujourd'hui m'oblige à procéder aux recherches sur différents fichiers dans un dossier précis.
voici le précédant code utilisé sur un seul fichier avec plusieurs feuilles :
Private Sub CommandButton1_Click()
Dim Ws As Worksheet
Dim CL As Range
Dim Num As Integer
Num = 8
'Nettoyage de la plage où afficher les résultats (par exemple A8 à G33)
Range("F8:O1500").ClearContents
'Si le TextBox est vide, il ne se passe rien
If TextBox1.Text <> "" Then
'Parcourons les différentes feuilles du classeur
For Each Ws In Worksheets
If Ws.Name <> "RECHERCHE" Then
'Parcourons les cellules de la plage de recherche (par exemple de A2 à A99)
For Each CL In Ws.Range("F8:F1500")
'Si la valeur recherchée est trouvée, on l'affiche dans la plage résultats
'ainsi que les cellules voisines
If InStr(UCase(CL.Value), UCase(TextBox1.Text)) > 0 Then
Range("F" & CStr(Num)).Value = CL.Value
Range("G" & CStr(Num)).Value = CL.Offset(0, 1).Value
Range("H" & CStr(Num)).Value = CL.Offset(0, 2).Value
Range("I" & CStr(Num)).Value = CL.Offset(0, 3).Value
Range("J" & CStr(Num)).Value = CL.Offset(0, 4).Value
Range("K" & CStr(Num)).Value = CL.Offset(0, 5).Value
Range("L" & CStr(Num)).Value = CL.Offset(0, 6).Value
Range("M" & CStr(Num)).Value = CL.Offset(0, 7).Value
Range("N" & CStr(Num)).Value = CL.Offset(0, 8).Value
Range("O" & CStr(Num)).Value = CL.Offset(0, 9).Value
Num = Num + 1
End If
Next CL
End If
Next Ws
End If
End Sub
voici le précédant code utilisé sur un seul fichier avec plusieurs feuilles :
Private Sub CommandButton1_Click()
Dim Ws As Worksheet
Dim CL As Range
Dim Num As Integer
Num = 8
'Nettoyage de la plage où afficher les résultats (par exemple A8 à G33)
Range("F8:O1500").ClearContents
'Si le TextBox est vide, il ne se passe rien
If TextBox1.Text <> "" Then
'Parcourons les différentes feuilles du classeur
For Each Ws In Worksheets
If Ws.Name <> "RECHERCHE" Then
'Parcourons les cellules de la plage de recherche (par exemple de A2 à A99)
For Each CL In Ws.Range("F8:F1500")
'Si la valeur recherchée est trouvée, on l'affiche dans la plage résultats
'ainsi que les cellules voisines
If InStr(UCase(CL.Value), UCase(TextBox1.Text)) > 0 Then
Range("F" & CStr(Num)).Value = CL.Value
Range("G" & CStr(Num)).Value = CL.Offset(0, 1).Value
Range("H" & CStr(Num)).Value = CL.Offset(0, 2).Value
Range("I" & CStr(Num)).Value = CL.Offset(0, 3).Value
Range("J" & CStr(Num)).Value = CL.Offset(0, 4).Value
Range("K" & CStr(Num)).Value = CL.Offset(0, 5).Value
Range("L" & CStr(Num)).Value = CL.Offset(0, 6).Value
Range("M" & CStr(Num)).Value = CL.Offset(0, 7).Value
Range("N" & CStr(Num)).Value = CL.Offset(0, 8).Value
Range("O" & CStr(Num)).Value = CL.Offset(0, 9).Value
Num = Num + 1
End If
Next CL
End If
Next Ws
End If
End Sub