Fusionner des feuilles

zbig

XLDnaute Occasionnel
Bonjour à tous

Voilà j'ai un fichier excel avec 36 feuilles "Jour" numérotées J01 à J36 (mais cela peut varier 33; 37; etc selon les années)
La 1ère ligne de chaque feuille comporte les champs des A à AF
Les informations commencent en ligne 2 jusque ?? cela dépend des feuilles mais au maxi la 50e ligne

J'ai une feuille "bilan" qui doit regrouper toutes les infos de toutes les feuilles
en ligne 1 j'ai un bouton macro

en ligne 2 j'ai les champs de A à Af (comme dans les feuilles jour)

En cliquant sur bouton je souhaiterais
vider la feuille bilan
Aller dans chaque feuille de façon chrono ( de la plus petite Jn à la plus grande JN)
copier les données de la feuille Jn
coller dans bilan
coller les données de la feuille Jn+1 (si elle n'existe pas, aller à Jn+2 etc)

et cela jusque la fin

Merci pour votre aide
Zbig
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner des feuilles

Bonjour à tous

zbig:

Il serait plus simple de t'aider si tu joignais un fichier exemple (anonymisé, simplifié et allégé), non ?
(Cela ne devrait pas être trop chronophage puisque tu disposes déjà d'un fichier sur ton disque dur ;) )

PS: Inscrit depuis 2005, tu devrais ne pas ignorer que le forum permet de joindre des fichiers dans les discussions ... ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Fusionner des feuilles

Re

Je te laisse tester ceci sur ton PC.
(Ici cela a l'air OK ;))
Code vba:
Sub test()
Dim ws As Worksheet, dl As Long
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.Name Like "j*" Then
dl = ws.Range("A65536").End(xlUp).Row
ws.Rows(2).Resize(dl).Copy Sheets("bilan").Range("A65536").End(xlUp).Offset(1, 0)
End If
Next ws
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner des feuilles

Re

Voila pour le "vidage" ;)
Code:
Sub testII()
Dim ws As Worksheet
Application.ScreenUpdating = False
Sheets("bilan").Rows("3:12345").Clear
For Each ws In Worksheets
If ws.Name Like "j*" Then
dl = ws.Range("A65536").End(xlUp).Row
ws.Rows(2).Resize(dl).Copy Sheets("bilan").Range("A65536").End(xlUp).Offset(1, 0)
End If
Next ws
End Sub
 

Discussions similaires

Réponses
8
Affichages
431

Statistiques des forums

Discussions
312 492
Messages
2 088 942
Membres
103 989
dernier inscrit
jralonso