Importation de plusieur fichier texte sur excel
Bonjour,
Grâce aux autres discussions j'ai appris qu'il été possible d'importer un fichier texte sous excel.
J'ai donc crée une macro qui va chercher un fichier texte dans un document, le copie, et le met en forme sous excel.
Cependant j'ai une centaine de fichier texte a aller chercher dans ce document et à remettre sous excel.
J'aimerai savoir comment faire afin que dans ma macro je puisse selectionner tous les fichiers texte du document lorsque j'indique le chemin.
Actuellement mon chemin c'est,
N'\atelier\divers\machines\nomdufichiertexte.text
Vous l'aurez compris jaimerai quil selectionne tous les fichiers texte du document machine.
Merci
Grâce aux autres discussions j'ai appris qu'il été possible d'importer un fichier texte sous excel.
J'ai donc crée une macro qui va chercher un fichier texte dans un document, le copie, et le met en forme sous excel.
Cependant j'ai une centaine de fichier texte a aller chercher dans ce document et à remettre sous excel.
J'aimerai savoir comment faire afin que dans ma macro je puisse selectionner tous les fichiers texte du document lorsque j'indique le chemin.
Actuellement mon chemin c'est,
N'\atelier\divers\machines\nomdufichiertexte.text
Vous l'aurez compris jaimerai quil selectionne tous les fichiers texte du document machine.
Merci
8 réponses
-
ContributeurBonjour
chdir tonchemin
fich = Dir("*.txt")
While fich <> ""
Ta macro qui importe le fichier txt (fich est le nom du fichier texte en cours, à mettre en variable Private avant les macros)
fich = Dir
Wend
-
Pourrais tu expliquer d'avantage s'il te plait,
Que signifie chdirton chemin par exemple ?-
Contributeur!!!
Chdir "N'\atelier\divers\machines\"
en général les fichiers texte ont un suffixe "txt" et bon "text"; si c'est quand même le cas tu modifies le code
entre while fich<>"" et fich=dir
tu insères ta macro
il faut donc garder en mémoire la variable "fich" et la déclarer en t^te de ton module avant toute macro
dim fich as string
ou
private fich as string
ou alors tu utilises une macro paramétrée style
sub macro(fich_txt)
dans laquelle fich_txt prend la valeur de fich
et tu remplaces le nom du fichier texte de ta macro de départ(par ex toto.txt), le fichier que tu traitais) par la variable fich_txt -
Contributeur
-
-
-
merci michel de ton aide mais malheureusement apres plusieurs tentative ca ne fonctionne pas !
voici le code :
Sub texte()
Dim fich as string
ChDir "N:\Atelier\divers\machine\ tubeuse.txt"
fich = Dir("*.txt")
While fich <> ""
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;N:\Atelier\divers\machine\ fich.txt" _
, Destination:=Range("$A$1"))
.Name = "fich"
.FieldNames = Tru
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
fich = Dir
Wend
End Sub
j'ai un problème de chemin alors qu'il est bon -
Contributeurj'ai un problème de chemin alors qu'il est bon
NON
"N:\Atelier\divers\machine\ tubeuse.txt" est un nom complet de fichier...
un chemin (path) s'écrirait ainsi
"N:\Atelier\divers\machine\"
d'autre part la variable fich renverra cette syntaxe tonfichier.txt
donc
fich.txt est faux
-
je prends note je vais réessayer ce matin, merci
-
J'ai un probleme de boucle je crois
Sub texte()
Dim fich as string
ChDir "N:\Atelier\divers\machine\"
fich = Dir("*.txt")
While fich <> ""
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;N:\Atelier\divers\machine\fich" _
, Destination:=Range("$A$1"))
.Name = "fich"
.FieldNames = Tru
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
fich = Dir
Wend
End Sub
dans .name= je dois mettre quoi ?-
Contributeur.name est le nom que tu donnes au tableau résultant: tu peux mettre le nom que tu veux, évite quand m^me les accents espaces et signes de ponctuatuion, et par prudence 1° caractère: une lettre.
mais j'utilise jamais Query mais une autre méthode : ADO, je te passe un code dès que j'ai un instant -
-
-
-
-
Bonjour,
Il est vrai que j'ai un petit problème de confidentialité, comment je fais pour le mettre en message personnel ?
Comme ça je t'envoi mon fichier excel ainsi que quelques fichiers texte que je dois importer.
Merci
(Désolé pour mon temps de réponse mais j'ai du faire face au virus du "gendarme") -
Quelqu'un peut m'aider ? SVP