Option Explicit
'cette macro n'ouvre qu'un seul fichier
Sub Boucle_Fichiers()
'ouvrir à partir de ce fichier tous les fichiers excel se trouvant dans le même répertoire
Dim Fichier As String, Chemin As String, Wb As Workbook, Wa As Workbook, Nomfichier As String, MonClasseur As String
Dim dlig As Long, dcol As Integer, Lig As Integer, Col As Integer, dligX As Integer, Rng As Range
Set Wa = ThisWorkbook
MonClasseur = Wa.Name
Chemin = Wa.Path
With Wa
dlig = Feuil1.Cells(Rows.Count, 4).End(xlUp).Row
dcol = Feuil1.Cells(2, Cells.Columns.Count).End(xlToLeft).Column
End With
Nomfichier = Left(Split(ThisWorkbook.Name, ".")(0), 15) 'on récupère début du fichier soit COLLARD_GILBERT
Fichier = Dir(Chemin & "\*.xls*") 'ouvrir fichier excel
Do 'boucle sur les fichiers excel se trouce dans le même dossier
If Fichier = "" Then Exit Do
If Fichier <> ThisWorkbook.Name Then
If Fichier Like Nomfichier & "*.xlsx" Then 'verifier nom fichier
Set Wb = Workbooks.Open(Chemin & "\" & Fichier)
'suite de la procedure
For Col = 5 To dcol 'boucle sur les colonnes
dligX = Workbooks(Fichier).Sheets(1).Cells(Rows.Count, Col).End(xlUp).Row 'derniere ligne de chaque colonne
If dligX > 2 Then ' si>2 donc contient des données
With Workbooks(MonClasseur).Sheets(1) 'on travaille sur le fichier maitre
.Range(.Cells(3, Col), .Cells(dlig, Col)) = "" 'on efface la colonne
End With
End If
Next Col
Application.DisplayAlerts = False 'on bloque message d'alerte de windows
Wb.Close True 'on ferme le fichier x
Application.DisplayAlerts = True 'on autorise les messages d'alerte de windows
Set Wb = Nothing
End If
End If
Fichier = Dir() 'on passe au fichier suivant
Loop
Wa.Save
Set Wa = Nothing
MsgBox "Traitement terminé!", vbOKOnly + vbInformation, "TRAITEMENT"
End Sub