Ouvrir .txt dans nouvel onglet en VBA Excel
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:
Code:
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 |
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 :
Citation:
Erreur d'exécution ' 9' :
L'indice n'appartient pas à la sélection.
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.
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 !