Sélection multiple, compilation CSV

Le
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: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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #6994381
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" %
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.




Tom Sawyer
Le #6995061
Merci beaucoup Daniel

Je vais tester ça cette après midi
"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" %
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.








Tom Sawyer
Le #6999441
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 !
Publicité
Poster une réponse
Anonyme