Bonsoir le forum,
Je reviens vers vous, car j'ai un petit souci à vous soumettre.
J'ai dans un répertoire plusieurs dizaines de fichiers CSV qui comportent des noms différents, mais dont la structure est strictement la même et dont le séparateur de données est un point virgule.
Je souhaite par macro, boucler sur chacun de ces fichiers, les ouvrir et coller le contenu dans une feuille d'un fichier XLSM qui contient ma macro ci-dessous et qui se trouve dans le même répertoire que les fichiers CSV.
J'ai bien conscience que mon code est perfectible, mais mon souci premier, c'est que les données restent de la colonne A à la colonne D de ma feuille de consolidation (les points virgules comme ceci ;;;;;; et ne sont pas ventilées dans les cellules jusqu'en colonne CZ, comme je l'attends.
Au regard de mon code, l'un(e) d'entre vous a t il(elle) une idée ?
Pour des raisons de confidentialité, je ne peux pas vous joindre de fichier CSV, mais si nécessaire, j'en anonymiserai un ou deux.
D'avance merci pour votre aide, je coince.
Oceanne.
Je reviens vers vous, car j'ai un petit souci à vous soumettre.
J'ai dans un répertoire plusieurs dizaines de fichiers CSV qui comportent des noms différents, mais dont la structure est strictement la même et dont le séparateur de données est un point virgule.
Je souhaite par macro, boucler sur chacun de ces fichiers, les ouvrir et coller le contenu dans une feuille d'un fichier XLSM qui contient ma macro ci-dessous et qui se trouve dans le même répertoire que les fichiers CSV.
VB:
Sub Compilation_Oceanne()
Dim Temp As String
Dim Ligne As Long
Application.DisplayAlerts = False
'Blanchiment des lignes avant nouveau traitement de consolidation sur la feuille "Données consolidées des CSV"
Workbooks("Macro Oceanne.xlsm").Sheets("Données consolidées des CSV").Range("A3:CZ" & Range("A1048576").End(xlUp).Row + 1).ClearContents '+1 pour éviter de blanchir la ligne 2 si pas de données dessous
Temp = Dir(ActiveWorkbook.Path & "\*.csv")
Do While Temp <> ""
If Temp <> "Macro Oceanne.xlsm" Then
Application.Workbooks.Open ActiveWorkbook.Path & "\" & Temp
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, Semicolon:=True
Workbooks(Temp).Sheets(1).Range("A3:CZ" & Range("A1048576").End(xlUp).Row).Copy
Workbooks("Macro Oceanne.xlsm").Activate
Sheets("Données consolidées des CSV").Select
Ligne = Sheets("Données consolidées des CSV").Range("A1048576").End(xlUp).Row + 1
Range("A" & CStr(Ligne)).Select
ActiveSheet.Paste
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
MsgBox "L'agrégation des fichiers CSV est terminée"
End Sub
J'ai bien conscience que mon code est perfectible, mais mon souci premier, c'est que les données restent de la colonne A à la colonne D de ma feuille de consolidation (les points virgules comme ceci ;;;;;; et ne sont pas ventilées dans les cellules jusqu'en colonne CZ, comme je l'attends.
Au regard de mon code, l'un(e) d'entre vous a t il(elle) une idée ?
Pour des raisons de confidentialité, je ne peux pas vous joindre de fichier CSV, mais si nécessaire, j'en anonymiserai un ou deux.
D'avance merci pour votre aide, je coince.
Oceanne.