copier des données de plusieurs fichiers pour en faire un seul - VB/VBA/VBS - Programmation
Marsh Posté le 07-01-2013 à 22:30:13
J'ai réussi à ouvrir un fichier, copier ce dont j'avais besoin puis le fermer mais tout ceci en donnant précisemment le nom du fichier à ouvrir. Je souhaiterais pouvoir ouvrir un à un tous les fichiers de ce dossier (fichier1.xls, fichier2.xls,fichier3.xls etc...) pour qu'il copie les données interressantes.
Je pense qu'il faut utiliser une boucle avec une incrémentation mais je ne sais pas quoi utiliser.
Marsh Posté le 08-01-2013 à 08:10:52
Hello,
Ajoute la référence microsoft scripting runtime
puis:
Citation : |
sinon il y a moyen de faire des requetes sans ouvrir les fichiers avec la librairie ADO.
En faisant des requetes SQL avec le path du fichier dans le FROM de mémoire.
Mais c'est + compliqué et je suis pas sur que ce soit + rapide surtout si tes fichiers sont petits...
Marsh Posté le 08-01-2013 à 09:15:35
tarteflambee a écrit : Hello,
|
Bonjour tarteflambee,
Je m'excuse mais étant débutant en vba j'ai du mal à comprendre ces lignes de commande.
Je vais poster les fichiers ce sera peut être plus simple à comprendre.
Merci tout de même pour cette réponse
Marsh Posté le 08-01-2013 à 19:36:02
ok je détaille. En fait c'est une boucle qui permet de lister tous les fichiers du dossier:
Sub dfg()
Dim filename As String
Dim oFSO As Scripting.FileSystemObject 'objet qui permet de parcourir le disque dur
Dim oFld As Scripting.Folder 'objet qui représente un dossier
Dim oFl As Scripting.File 'objet qui représente un fichier
Set oFSO = New Scripting.FileSystemObject 'on crée le gestionnaire de fichier
Set oFld = oFSO.GetFolder("E:\stellina_pics\" ) 'on défini quel dossier on veut parcourir => ici le dossier stellina_pics dans le disque E => dans la variable oFld
For Each oFl In oFld.Files 'boucle qui liste les fichiers qui sont dans le dossier
filename = oFl.Name 'on récupère le nom de chaque fichier
filename = oFl.Path 'ou le chemin complet
Tu peux donc insérer ta macro qui traite un fichier ici, tu as le nom du fichier dans la variable filename
et ca va boucler sur tous les fichiers du dossier
Next oFl
Set oFld = Nothing
Set oFSO = Nothing
End Sub
et pour la référence c'est dans Outils > Référence: tu coches "Microsoft scripting runtime" et tu sauvegardes
Marsh Posté le 07-01-2013 à 14:31:22
Bonjour,
Je souhaite créer un fichier excel récapitulatif reprenant les données de plusieurs autres fichiers situés dans le même dossier.
Le nombre de fichier augmente régulièrement.
Les fichiers sont tous identiques, donc les données à copier sont toutes dans les mêmes cellules.
J'ai réussi à faire une macro pour lister tous les fichiers compris dans mon dossier.
Comment puis-je copier les données dont j'ai besoin ? (dois-je forcément ouvrir à chaque fois le fichier puis le refermer à la fin de la manip ?)
Merci d'avance pour vos réponses