overpower
Messages postés16Date d'inscriptionvendredi 29 juillet 2005StatutMembreDernière intervention26 août 2005
-
1 août 2005 à 17:20
overpower
Messages postés16Date d'inscriptionvendredi 29 juillet 2005StatutMembreDernière intervention26 août 2005
-
2 août 2005 à 14:40
Bonjour,
Je voudrais savoir si quelqu'un saurait comment concaténer plusieurs fichiers en un seul en vba.
J'ai trouvé une solution mais elle est tres restrictive au niveau du nombre de caractere pour le pattern, exemple:
Celle ci marche
Shell("Command.com /c COPY c:\az*.* c:\res.txt")
Mais le code suivant ne marche plus:
Shell("Command.com /c COPY c:\azerty*.* c:\res.txt")
car apparemment je peux pas depasser les 5 caracteres.
Yaurait il une fonction equivalente en vba mais sans restriction de longueur de caracteres?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 août 2005 à 12:04
salut,
le problème, c'est que je suis pas du tout VBA moi...
le fait qu'il ne te concatène pas tous les fichiers, çà peut être normal (surtout avec ton exemple de chemin)
tu ne va pas forcément pouvoir copier un fichier système protégé par exemple. il faut penser aux droits, formats, etc....
"COPY" a pour but de copier réellement une source vers une destination
mais pourquoi ne pas adapter ce genre de routine :
tu répertories tous les fichiers de ton dossier, et un a un, tu les ajouter dans ton fichier text
dir(...) jusqu'à ce que dir retourne ""
Dim Contenu As String, i As Integer, FF As Integer
MyName = Dir(MyPath & "*.txt")
MyPath = App.Path & "\test" 'ton chemin
i = 0
Do While MyName <> "" ' Commence la boucle.
Contenu = ""
FF = FreeFile
Open MyPath & MyName For Input As #FF
Contenu = Input(LOF(FF), 1)
Close #FF
DoEvents
FF = FreeFile
Open App.Path & "\sauve.txt" For Append As #FF
Print #FF, Contenu
Close #FF
DoEvents
MyName = Dir ' Extrait l'entrée suivante.
i = i + 1
Loop
MsgBox "Fin : " & i & " fichier(s) traité(s)"
là çà fonctionne, mais je n'ai pris que les fichiers txt.
sinon, tu dois ouvrir les fichiers en binary
overpower
Messages postés16Date d'inscriptionvendredi 29 juillet 2005StatutMembreDernière intervention26 août 2005 2 août 2005 à 09:52
Non, apparemment ça ne marche toujours pas.
En plus du problème, j'ai un truc assez bizarre. Lorsque j'ecris l'expression avec 3 caracteres comme ceci aze*.* il ne copie que kelkes fichiers, pas tous, et lorsque j'utilise que 2 caracteres comme ceci az*.* il me concatene tous les fichiers du repertoire. Je ne comprends vraiment pas le mécanisme de cette commande. ça marche tres bien avec un bat mais avec la commande shell sous vba ya bcp de problemes.
Pouvez vous m'eclaircir sur ce sujet? merci infiniment.