Fusionner des csv dans un fichier Excel

Bonjour à tous,

J'ai grand besoin d'aide, je me lance dans un projet pour m'aider dans mon travail.

Je dois analyser tout les jours des fichiers pour mon travail de biologiste et je voudrais automatiser tout ca.

L'idée est de pouvoir chercher dans un dossier contenant des sous dossiers, tout les fichiers csv qui contiennent dans leurs noms le mot "data". et des les copier dans un seul et même fichier excel, à chaque fois dans un nouvel onglet qui comporte le nom du sous dossier (et une numérotation si il y en a plusieurs dans chaque sous dossier)

J'ai regardé tout les forums mais je débute et je suis perdu.

Merci d'avance!

Pour le moment voici un code que j'ai trouvé qui peut me servir de bonne base mais il ne permet de regarder que dans un seul dossier et pas dans les sous dossier. Et je ne sais pas comment spécifier que je veux faire une recherche avec un mot spécifique.

Sub ImportCSVData()

Dim wb As Workbook

Dim wbCSV As Workbook

Dim myPath As String

Dim myFile As Variant

Dim fileType As String

Dim i As Integer

'Get Target Folder Path From User

With Application.FileDialog(msoFileDialogFolderPicker)

.Title = "Select Source Folder"

.AllowMultiSelect = False

.Show

myPath = .SelectedItems(1)

End With

'Specify file type

fileType = "*.csv*"

'Target Path with file type

myFile = Dir(myPath & fileType)

'Add Target Workbook

Workbooks.Add

ActiveWorkbook.SaveAs Filename:= _

myPath & " Total Results.xlsm", FileFormat:= _

xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Set wb = Workbooks.Open(myPath & " Total Results.xlsm")

'Loop through each Excel file in folder

Do While myFile > 0

Worksheets.Add(Before:=Worksheets("Sheet1")).Name = "Image " & i + 1

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myPath & "*.csv" _

, Destination:=ActiveSheet.Range("$A$1"))

.Name = myFile

.FieldNames = True

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.TextFilePromptOnRefresh = False

.TextFilePlatform = 850

.TextFileStartRow = 1

.TextFileParseType = xlDelimited

.TextFileTextQualifier = xlTextQualifierDoubleQuote

.TextFileConsecutiveDelimiter = False

.TextFileTabDelimiter = False

.TextFileSemicolonDelimiter = False

.TextFileCommaDelimiter = True

.TextFileSpaceDelimiter = False

.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _

1)

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False 'Error occurs here!

End With

i = i + 1

Loop

'Message Box when tasks are completed

MsgBox "Result Import Complete"

End Sub

Bonjour

Faisable simplement par PowerQuery (intégré à Excel 2016 et plus, en add on sur 2010 et 2013)

Bonsoir,

Peut-on même pousser le vice jusqu'à demander pourquoi mettre ces données dans des onglets séparés ?

RE

Peut-on même pousser le vice jusqu'à demander pourquoi mettre ces données dans des onglets séparés ?

Oui, on peut indiquer la source dans une colonne

En plus tout n'est pas autorisé dans le nommage d'un onglet et tu vas avoir combien d'onglets ?

Bonjour,
Merci pour vos réponses.

Je souhaite faire une macro car cela me pousse à apprendre.

Effectivement je dois copier depuis chaque csv deux colonnes. En les ajoutant les une cote à cote dans le meme onglet ca sera plus simple.

Rechercher des sujets similaires à "fusionner csv fichier"