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.
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