Macro VBA

  • Initiateur de la discussion embodu
  • Date de début
E

embodu

Guest
Bonjour!

J'ai un répertoire avec une trentaine de fichiers.
Chaque fichier est composé du meme nombre de feuille
Je souhaite copier dans un seul autre fichier à créer la derniere feuille de chacun des fichiers avec une macro

Avez vous une solution ?

(données pratiques : chaque fichier correspond à 1 client, chaque onglet correspond à son activité mois par mois (un onglet par mois jusqu'au mois en cours). Chaque mois, je dois faire un récap dans un seul fichier de l'activité du mois pour chaque client. Jusqu'à présent, j'ouvrais et je collais un à un les fichiers ouverts un à 1.)

Remerciements
 
J

john

Guest
Salut,

Je viens de me pencher sur ton problème, voici un fichier qui recherche tous les xls dans le dossier spécifié dans la cellule A1.

En plus de les ouvrirs, il sélectionne une partie de la feuille (à toi de modifier mon prg pour qu'il selectionne ce que tu veux), il fait une copie, ré-active l'autre classeur ou les données doivent être copiées et colle ce qu'il vient d'être copié (à chaque fois sur une nouvelle feuille), si il n'y a plus de feuille, la macro ajoute une feuille après la dernière.

Ensuite le classeur ouvert via la macro est refermé.

Et ainsi de suite pour tout les classeurs se trouvant dans le répertoire.

Bonne fin de journée.

John
 

Pièces jointes

  • ouvrexls.zip
    12.2 KB · Affichages: 19
J

Jon

Guest
Dim Fichier

application.enableevents=false 'désactivation des évènements
with Application.FileSearch
.FileName = "*.xls"
.LookIn = "C:\Windows\Temp"
.Execute

If .foundfiles.count>0 then exit sub else workbooks.add :set wbk_Tgt=activeworkbook
On Error Resume Next
For each Fichier In .FoundFiles
workbooks.open Fichier
activeworkbook.sheets(activeworkbook.sheets.count).copy after:=wbk_Tgt.sheets(wbk_Tgt.sheets.count)
activeworkbook.close savechanges:=false
Next
applicatin.enableevents=true
On Error Goto 0
End with
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813