Importation de plusieur fichier texte sur excel

Fermé
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 - 26 oct. 2012 à 09:54
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 - 18 nov. 2012 à 17:30
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
A voir également:

8 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 oct. 2012 à 11:06
Bonjour
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
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
26 oct. 2012 à 13:19
Pourrais tu expliquer d'avantage s'il te plait,
Que signifie chdirton chemin par exemple ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 26/10/2012 à 13:56
!!!
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 oct. 2012 à 18:01
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
29 oct. 2012 à 18:04
désolé mais je n'avais plus accès à internet !!
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
29 oct. 2012 à 18:23
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 oct. 2012 à 18:40
j'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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
30 oct. 2012 à 07:35
je prends note je vais réessayer ce matin, merci
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
30 oct. 2012 à 17:31
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 ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
30 oct. 2012 à 18:15
.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
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
30 oct. 2012 à 20:52
merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
31 oct. 2012 à 09:53
Bonjour,

Il faudrait que tu m'envoie un de tes fichiers texte pour faire des essais
Si tu crains pour la confidentialité, mets le en message personnel

au fait, où mets tu les importations des Txt: tu demandes la cellule A1 mais tu me parles d'une 100taine de fichiers...
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
1 nov. 2012 à 16:22
bonjour, je te prépar le fichier pour demain, je n'y ai pas accès aujourd'hui.
merci
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
5 nov. 2012 à 22:42
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")
0
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 9
18 nov. 2012 à 17:30
Quelqu'un peut m'aider ? SVP
0