Bonjour forum
Svp
Comment puis-je modifier ce code pour qu'il fonctionne efficacement où qu'il soit placé (path) et je mettrai les fichiers de travail à côté
Merci infiniment
Sub stati_hicham()
Application.ScreenUpdating = False
chemin = "C:\hicham\" 'répertoire où se trouvent les fichiers listeleve
Set wsr = ThisWorkbook.Sheets("feuil1") ' feuille statistiques
Set plageannee = wsr.Range("C9:R9") 'liste des années
Set bt = wsr.Range("C12") 'position du tableau statistiques
bt.Resize(4, 12).ClearContents 'efface les résultats des comptages précédents. 'pour 4 établissements
Worksheets("Feuil1").Range("B12:R21").Value = ""
Worksheets("Feuil1").Range("H4:H5").Value = ""
fille = wsr.Range("A2") 'cellule contenant le texte fille en arabe
nf = Dir(Chemin & "listeleve*.xls") 'on cherche le premier fichier qui correspond au filtre
ctr = 0
Do While nf <> "" 'tant qu'on a un fichier qui correspond au filtre
Set wb = Workbooks.Open(Chemin & nf)
ctre = ctre + 1
bt.Offset(ctre - 1, -1) = Range("H8")
For Each ws In wb.Worksheets
With ws
classe = Trim(.Range("T10")) 'année
col = 0
For Each annee In plageannee 'recherche de la colonne année dans la feuille statistiques
col = col + 1
If annee <> "" And annee = classe Then
dlws = .Cells(.Rows.Count, "L").End(xlUp).Row 'dernière ligne utile
bt.Cells(ctre, col + 1) = bt.Cells(ctre, col + 1) + Application.CountIf(.Range("L16:L" & dlws), fille) 'comptage Filles
bt.Cells(ctre, col) = bt.Cells(ctre, col) + Application.CountA(.Range("L16:L" & dlws)) 'comptage total
Exit For
End If
Next annee
End With
Next ws
wb.Close False
nf = Dir() 'fichier suivant
Loop
MsgBox "fini"
End Sub