Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Multi import txt

26 réponses
Avatar
Michel B
Bonjour a toutes et a tous.

J'ai un repertoire contenant différent fichier txt délimité par des " ; "
( point-virgule).
Tous ont un formatage identique.
Fichier.1.txt
Fichier.2.txt
Fichier.3.txt
Fichier.4.txt
Fichier.5.txt
Etc....

il peut y avoir entre 40 et 120 fichiers

Je dois réunir l'ensemble du contenu des fichiers présent dans une seule
feuilles.

Ma question, cela est'il automatisable et si oui comment ?

D'avance
merci

Cordialement
Michel

6 réponses

1 2 3
Avatar
Daniel.C
La version suivante doit éviter les messages. Pour les macros, je ne
comprends pas, à moins qu'elles soient dans un fichier texte ou qu'elles
aient été copiées manuellement. D'ailleurs, l'une s'appelle "Macro2" alors
que la mienne s'appelle "Test". Efface la feuille et recommence avec :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485fc87f$0$23888$
Ca progresse encore.
maintenant j'ai toute les données.
Pendant l'exécution j'ai plusieur de message, une quinzaine (OK ou NON),
concernant le presse papier
et a l'arrivée, j'ai une quarantaine de lignes, les première qui reprenne
plusieur fois le code de la macro !

mais c'est tout de même mieux, je te joint le fichier

http://cjoint.com/?gxr1OZkWPf
Michel


"Daniel.C" a écrit dans le message de news:

A tout hasard, essaie le code suivant :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
ActiveWorkbook.Close
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485faf23$0$29167$
Oui, je l'ai changer en

"C:Resnet" et j'avais au préalable esssayé ausi en reconstituant ton
chemin sur mon disk E.

J'ai essayé chez mon fils, cela ne marche pas non plus. Il est comme moi
"PC duo 3 Go"
En revanche sur le PC de ma fille cela fonctionne ?
C'est la machine la plus vieille et la moins puissante. Un AMD 2800 de 6
ans ?

Lorsque cela ne fonctionne pas ce sont toujours les deux même lignes en
jaune ?

Sur la mienne j'ai assayé en revenant a Off 2000 idem, en Off 2003 idem.
j'attend d'avoir une machine de libre pour essayer en Off 2007 ?

Je commence a désespérer
Michel


"Daniel.C" a écrit dans le message de news:

Peut être faut il des bibliothéques suplementaires, je ne connait pas
bien VBA.



Normalement non. Est-ce que tu as bien changé la constante "Chemin"
avec un "" à la fin ?
Daniel















Avatar
Michel B
Bonjour Daniel,

Un très grand merci.
Ca marche nickel.
Pour les messages, c'était moi qui sauvegardais les codes à l'essai en
BlocNote dans le même répertoire,
quand on dit qu'au bout d'un certain temp on ne vois plus rien !

Une dernière petite chose, comment modifier qu'elle puisse être mise dans le
classeur de macro personel ?

Encore merci
Michel



"Daniel.C" a écrit dans le message de news:

La version suivante doit éviter les messages. Pour les macros, je ne
comprends pas, à moins qu'elles soient dans un fichier texte ou qu'elles
aient été copiées manuellement. D'ailleurs, l'une s'appelle "Macro2" alors
que la mienne s'appelle "Test". Efface la feuille et recommence avec :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485fc87f$0$23888$
Ca progresse encore.
maintenant j'ai toute les données.
Pendant l'exécution j'ai plusieur de message, une quinzaine (OK ou NON),
concernant le presse papier
et a l'arrivée, j'ai une quarantaine de lignes, les première qui reprenne
plusieur fois le code de la macro !

mais c'est tout de même mieux, je te joint le fichier

http://cjoint.com/?gxr1OZkWPf
Michel


"Daniel.C" a écrit dans le message de news:

A tout hasard, essaie le code suivant :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
ActiveWorkbook.Close
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485faf23$0$29167$
Oui, je l'ai changer en

"C:Resnet" et j'avais au préalable esssayé ausi en reconstituant ton
chemin sur mon disk E.

J'ai essayé chez mon fils, cela ne marche pas non plus. Il est comme
moi "PC duo 3 Go"
En revanche sur le PC de ma fille cela fonctionne ?
C'est la machine la plus vieille et la moins puissante. Un AMD 2800 de
6 ans ?

Lorsque cela ne fonctionne pas ce sont toujours les deux même lignes en
jaune ?

Sur la mienne j'ai assayé en revenant a Off 2000 idem, en Off 2003
idem.
j'attend d'avoir une machine de libre pour essayer en Off 2007 ?

Je commence a désespérer
Michel


"Daniel.C" a écrit dans le message de news:

Peut être faut il des bibliothéques suplementaires, je ne connait pas
bien VBA.



Normalement non. Est-ce que tu as bien changé la constante "Chemin"
avec un "" à la fin ?
Daniel



















Avatar
francois.forcet
Rebonjours Michel

Tu n'as pas actualisé cette partie :

Workbooks("Classeur1.xls").Sheets("Feuil1").Range(Repère)

du nom de ton classeur ou de la feuille

Si tu la mets à jour celà fonctionne

Dis mois !!!!
Avatar
Michel B
Bonjour François,

Un grand merci.

Cela fonctionne impec, exactement ce que je souhaitais.

Encore merci

Michel





a écrit dans le message de news:

Rebonjours Michel

Tu n'as pas actualisé cette partie :

Workbooks("Classeur1.xls").Sheets("Feuil1").Range(Repère)

du nom de ton classeur ou de la feuille

Si tu la mets à jour celà fonctionne

Dis mois !!!!
Avatar
Daniel.C
Bonjour.

Sub test()
Dim Fich As String, Ligne As Long, Sh As Worksheet
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Workbooks.Add 1
Set Sh = ActiveWorkbook.Sheets("Feuil1")
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
Sh.Cells(Ligne, 1).PasteSpecial xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel
"Michel B" a écrit dans le message de news:
486069d7$0$6555$
Bonjour Daniel,

Un très grand merci.
Ca marche nickel.
Pour les messages, c'était moi qui sauvegardais les codes à l'essai en
BlocNote dans le même répertoire,
quand on dit qu'au bout d'un certain temp on ne vois plus rien !

Une dernière petite chose, comment modifier qu'elle puisse être mise dans
le classeur de macro personel ?

Encore merci
Michel



"Daniel.C" a écrit dans le message de news:

La version suivante doit éviter les messages. Pour les macros, je ne
comprends pas, à moins qu'elles soient dans un fichier texte ou qu'elles
aient été copiées manuellement. D'ailleurs, l'une s'appelle "Macro2"
alors que la mienne s'appelle "Test". Efface la feuille et recommence
avec :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485fc87f$0$23888$
Ca progresse encore.
maintenant j'ai toute les données.
Pendant l'exécution j'ai plusieur de message, une quinzaine (OK ou NON),
concernant le presse papier
et a l'arrivée, j'ai une quarantaine de lignes, les première qui
reprenne plusieur fois le code de la macro !

mais c'est tout de même mieux, je te joint le fichier

http://cjoint.com/?gxr1OZkWPf
Michel


"Daniel.C" a écrit dans le message de news:

A tout hasard, essaie le code suivant :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
ActiveWorkbook.Close
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485faf23$0$29167$
Oui, je l'ai changer en

"C:Resnet" et j'avais au préalable esssayé ausi en reconstituant
ton chemin sur mon disk E.

J'ai essayé chez mon fils, cela ne marche pas non plus. Il est comme
moi "PC duo 3 Go"
En revanche sur le PC de ma fille cela fonctionne ?
C'est la machine la plus vieille et la moins puissante. Un AMD 2800 de
6 ans ?

Lorsque cela ne fonctionne pas ce sont toujours les deux même lignes
en jaune ?

Sur la mienne j'ai assayé en revenant a Off 2000 idem, en Off 2003
idem.
j'attend d'avoir une machine de libre pour essayer en Off 2007 ?

Je commence a désespérer
Michel


"Daniel.C" a écrit dans le message de news:

Peut être faut il des bibliothéques suplementaires, je ne connait
pas bien VBA.



Normalement non. Est-ce que tu as bien changé la constante "Chemin"
avec un "" à la fin ?
Daniel























Avatar
Michel B
Bonjour Daniel,

Impec, tout fonctionne nickel


Encore merci
Michel



"Daniel.C" a écrit dans le message de news:
%
Bonjour.

Sub test()
Dim Fich As String, Ligne As Long, Sh As Worksheet
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Workbooks.Add 1
Set Sh = ActiveWorkbook.Sheets("Feuil1")
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
Sh.Cells(Ligne, 1).PasteSpecial xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel
"Michel B" a écrit dans le message de news:
486069d7$0$6555$
Bonjour Daniel,

Un très grand merci.
Ca marche nickel.
Pour les messages, c'était moi qui sauvegardais les codes à l'essai en
BlocNote dans le même répertoire,
quand on dit qu'au bout d'un certain temp on ne vois plus rien !

Une dernière petite chose, comment modifier qu'elle puisse être mise dans
le classeur de macro personel ?

Encore merci
Michel



"Daniel.C" a écrit dans le message de news:

La version suivante doit éviter les messages. Pour les macros, je ne
comprends pas, à moins qu'elles soient dans un fichier texte ou qu'elles
aient été copiées manuellement. D'ailleurs, l'une s'appelle "Macro2"
alors que la mienne s'appelle "Test". Efface la feuille et recommence
avec :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485fc87f$0$23888$
Ca progresse encore.
maintenant j'ai toute les données.
Pendant l'exécution j'ai plusieur de message, une quinzaine (OK ou
NON), concernant le presse papier
et a l'arrivée, j'ai une quarantaine de lignes, les première qui
reprenne plusieur fois le code de la macro !

mais c'est tout de même mieux, je te joint le fichier

http://cjoint.com/?gxr1OZkWPf
Michel


"Daniel.C" a écrit dans le message de news:

A tout hasard, essaie le code suivant :

Sub test()
Dim Fich As String, Ligne As Long
Const Chemin As String = "e:donneesdanielmpferesnet"
Application.ScreenUpdating = False
Ligne = 1
Fich = Dir(Chemin & "*.txt")
Do While Fich <> ""
Workbooks.OpenText Chemin & Fich, _
DataType:=xlDelimited, semicolon:=True
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Feuil1").Cells(Ligne, 1).PasteSpecial
xlValues
ActiveWorkbook.Close
Ligne = [A1].End(xlDown).Row + 1
Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub

Daniel
"Michel B" a écrit dans le message de news:
485faf23$0$29167$
Oui, je l'ai changer en

"C:Resnet" et j'avais au préalable esssayé ausi en reconstituant
ton chemin sur mon disk E.

J'ai essayé chez mon fils, cela ne marche pas non plus. Il est comme
moi "PC duo 3 Go"
En revanche sur le PC de ma fille cela fonctionne ?
C'est la machine la plus vieille et la moins puissante. Un AMD 2800
de 6 ans ?

Lorsque cela ne fonctionne pas ce sont toujours les deux même lignes
en jaune ?

Sur la mienne j'ai assayé en revenant a Off 2000 idem, en Off 2003
idem.
j'attend d'avoir une machine de libre pour essayer en Off 2007 ?

Je commence a désespérer
Michel


"Daniel.C" a écrit dans le message de news:

Peut être faut il des bibliothéques suplementaires, je ne connait
pas bien VBA.



Normalement non. Est-ce que tu as bien changé la constante "Chemin"
avec un "" à la fin ?
Daniel



























1 2 3