Bonjour à tous,
Je souhaiterais ouvrir dans excel 21 fichiers .txt (appelés texte1.txt , texte2.txt, ... , texte21.txt) contenus dans un même dossier à l'aide d'une macro. Le truc c'est que j'aimerais les ouvrir en tant que nouveaux onglets et non comme nouveaux classeurs. Étant donné que je n'ai pas trouvé le moyen d'ouvrir un fichier directement dans un nouvel onglet, je suis passé par une technique qui ouvre le fichier, copie la première feuille dans mon classeur et referme le fichier dont je n'ai plus besoin; le tout dans une boucle qui tourne 21 fois.
Voyez plutôt:
Mon problème est que, lors de l'exécution, le fichier texte1.txt s'ouvre bien mais dans une nouvelle fenêtre, la copie ne se fait donc pas; et le message d'erreur suivant apparait :
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
32 Sub MAP() ' ' ouverture_txt Macro ' ' Touche de raccourci du clavier: Ctrl+Maj+O ' Dim numero As Integer Dim chemin_dossier As String chemin_dossier = InputBox(Prompt:="Insérez le chemin du dossier où se trouvent les .txt") For numero = 1 To 21 Workbooks.OpenText Filename:= _ 'ouvre le fichier chemin_dossier & "\texte" & numero & ".txt" _ 'chemin\texte1.txt , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _ 'parametres douverture :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _ False, Comma:=False, Space:=False, Other:=True, OtherChar:="|", _ FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True 'Sheets.Add After:=Sheets(Sheets.Count) 'ouvre un nouvel onglet, a priori pas necessaire car la copie en creer un directement Windows("texte" & numero & ".xlsx").Activate 'change de fenetre active Sheets("Feuil1").Select 'selectionne la premiere feuille Sheets("Feuil1").Copy Before:=Workbooks("Classeur1").Sheets(1) 'copie cette feuille dans lautre classeur ActiveWindow.Close 'ferme le classeur dont on vient de copier la premiere feuille Next numero 'incremente le compteur End Sub
La plupart des lignes de code que j'utilise viennent directement de l'éditeur de macro (j'ai enregistré une macro dont j'ai ensuite copié le code) donc il est censé être bon.Erreur d'exécution ' 9' :
L'indice n'appartient pas à la sélection.
J'ai aussi vu que l'erreur d'exécution 9 pouvait être réglée en ajoutant 'With ThisWorkBook' et 'End With' mais vu que je change de classeur actif et que j'en ferme un, je ne sais pas trop où les placer...
Si quelqu'un pouvait m'aider à voir des erreurs ou trouver des idées de solutions, ça serait vraiment cool!
Merci à tous ceux qui pourront m'aider !
Partager