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

Sélection multiple, compilation CSV

3 réponses
Avatar
Tom Sawyer
Bonjour à tous,

Afin d'importer des données à traiter dans un fichier excel, j'utilise le
code suivant :

Fichier1 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
Fichier2 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
.............

Open "H:\Test\Temporaire.csv" For Output As #2

'1er fichier
Open Fichier1 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1

'2ème fichier
Open Fichier2 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1
............

Cette solution marche très bien mais la sélection des fichiers est très
longue à faire et des erreurs peuvent être commises. Je voudrais donc
utiliser la sélection multiple pour alller plus vite et fiabiliser la
procédure.
C'est là que ça me pose soucis. Je voudrais que ma macro permettent de
sélectionner un dossier et qu'elle ajoute à la sélection tous les fichiers
de ce répertoire dont le nom commence par "TSF2X".
Une fois la sélection opérée, je voudrais trouver le moyen d'incrémenter
chaque fichier dans un seul et unique fichier. Mais seulement je ne sais pas
quelle boucle utiliser pour adapter la macro actuelle à une sélection
multiple.
Voilà j'espère que je n'ai pas été trop confus. J'espère aussi que quelqu'un
saura au moins me mettre sur la voix.
Je vous remerci d'avance et vous souhaite un bon week end à tous.

3 réponses

Avatar
Daniel.C
Bonjour.
Essaie la macro suivante (non testée en changeant la constante "Chemin".

Sub test()
Dim Fich As String
chemin = "e:donneesdanielmpfe"
Open "H:TestTemporaire.csv" For Output As #2
Fich = Dir(chemin & "TSF2X*.csv")
Do While Fich <> ""
Open chemin & Fich For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1
Fich = Dir
Loop
Close #2
End Sub

Cordialement.
Daniel
"Tom Sawyer" a écrit dans le message de news:
%
Bonjour à tous,

Afin d'importer des données à traiter dans un fichier excel, j'utilise le
code suivant :

Fichier1 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
Fichier2 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
.............

Open "H:TestTemporaire.csv" For Output As #2

'1er fichier
Open Fichier1 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1

'2ème fichier
Open Fichier2 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1
............

Cette solution marche très bien mais la sélection des fichiers est très
longue à faire et des erreurs peuvent être commises. Je voudrais donc
utiliser la sélection multiple pour alller plus vite et fiabiliser la
procédure.
C'est là que ça me pose soucis. Je voudrais que ma macro permettent de
sélectionner un dossier et qu'elle ajoute à la sélection tous les fichiers
de ce répertoire dont le nom commence par "TSF2X".
Une fois la sélection opérée, je voudrais trouver le moyen d'incrémenter
chaque fichier dans un seul et unique fichier. Mais seulement je ne sais
pas quelle boucle utiliser pour adapter la macro actuelle à une sélection
multiple.
Voilà j'espère que je n'ai pas été trop confus. J'espère aussi que
quelqu'un saura au moins me mettre sur la voix.
Je vous remerci d'avance et vous souhaite un bon week end à tous.




Avatar
Tom Sawyer
Merci beaucoup Daniel

Je vais tester ça cette après midi
"Daniel.C" a écrit dans le message de news:

Bonjour.
Essaie la macro suivante (non testée en changeant la constante "Chemin".

Sub test()
Dim Fich As String
chemin = "e:donneesdanielmpfe"
Open "H:TestTemporaire.csv" For Output As #2
Fich = Dir(chemin & "TSF2X*.csv")
Do While Fich <> ""
Open chemin & Fich For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1
Fich = Dir
Loop
Close #2
End Sub

Cordialement.
Daniel
"Tom Sawyer" a écrit dans le message de news:
%
Bonjour à tous,

Afin d'importer des données à traiter dans un fichier excel, j'utilise le
code suivant :

Fichier1 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
Fichier2 = Application.GetOpenFilename("Text Files (*.csv), *.csv", ,
"Fichier à traiter")
.............

Open "H:TestTemporaire.csv" For Output As #2

'1er fichier
Open Fichier1 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1

'2ème fichier
Open Fichier2 For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Loop
Close #1
............

Cette solution marche très bien mais la sélection des fichiers est très
longue à faire et des erreurs peuvent être commises. Je voudrais donc
utiliser la sélection multiple pour alller plus vite et fiabiliser la
procédure.
C'est là que ça me pose soucis. Je voudrais que ma macro permettent de
sélectionner un dossier et qu'elle ajoute à la sélection tous les
fichiers de ce répertoire dont le nom commence par "TSF2X".
Une fois la sélection opérée, je voudrais trouver le moyen d'incrémenter
chaque fichier dans un seul et unique fichier. Mais seulement je ne sais
pas quelle boucle utiliser pour adapter la macro actuelle à une sélection
multiple.
Voilà j'espère que je n'ai pas été trop confus. J'espère aussi que
quelqu'un saura au moins me mettre sur la voix.
Je vous remerci d'avance et vous souhaite un bon week end à tous.








Avatar
Tom Sawyer
Voilà je viens de tester ça. C'est impeccable, j'ai réussi à l'adapter à mon
cas et ça marche impeccable.
Merci pour ton aide !