Bonjour,
Tout d'abord, je tiens à préciser que je suis un pur novice en terme de programmation, même basique comme le VBA, mais que je me vois obligé de m'y plonger pour automatiser le traitement de données issues d'une de mes expérimentations.
Je souhaiterai donc réaliser une macro qui me permettrait de copier les deux colonnes contenues dans des fichiers ".txt" (il y en a une 100aines, d'où le soucis d'automatisation) dans un seule feuille d'un classeur excel et les unes à la suite des autres.
De plus, les fichiers ".txt" en question sont noyés dans un dossier qui en contient bien d'autres, mais ces fichiers possèdent la particularité commune de possèder "*-Corr.txt" dans leurs noms.
Enfin, pour un soucis de lisibilité, j'ai choisis de copier mes colonnes à partir de la ligne 2.
Donc voici la macro que je suis parvenu à écrire après moult recherches:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub Command666_Click() Dim MyFolder As String Dim myfile As String Dim folderName As String With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show = -1 Then folderName = .SelectedItems(1) End If End With myfile = Dir(folderName & "\*-Corr.txt") Do While myfile <> "" Workbooks.OpenText Filename:=folderName & "\" & myfile 'crée une requête sur le fichier texte et insère les champs dans la feuille "Feuil1" en partant de "A2" Worksheets("Feuil1").QueryTables.Add("TEXT;" & myfile, [A2]).Refresh 'la suite est utilisée pour fermer mes fichiers txt Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True myfile = Dir Loop End Sub
J'arrive, grâce à cette macro, à ouvrir mes fichiers ".txt" de manière nominative ("*-Corr.txt") et à les fermer les uns à la suite dans autres. Seulement, je n'arrive pas à me dépatouiller de ma fonction "If", donc aucune copie ne s'effectue.
Si quelqu'un arrivait à m'éclairer sur mes erreurs, je lui serais absolument reconnaissant.
Partager