Copier contenu variable de plusieurs feuilles en une seule !!!

2 réponses
Avatar
denys59.p
Bonjour =C3=A0 tous,

Dans un "workbook" contenant plusieurs feuilles, je voudrais copier le cont=
enu de la colonne A =C3=A0 la colonne M de toutes les feuilles et rapporter=
le contenu dans une seule feuille (une feuille =C3=A0 la suite de l'autre)=
que je nomme R=C3=A9capitulatif.

Le nombre de feuilles peut =C3=AAtre diff=C3=A9rent d'un mois =C3=A0 l'autr=
e mais le nombre de colonnes ayant du contenu est toujours le m=C3=AAme, i.=
e. de A =C3=A0 M.

Et si =C3=A7a peut aider, la derni=C3=A8re ligne utilis=C3=A9e commence tou=
jours en colonne A par Report Total.

Merci pour votre temps.

Denys

2 réponses

Avatar
MichD
Bonjour,
La procédure suppose que la feuille "Récapitulatif" est déjà présente dans
le classeur.
La procédure vide cette feuille en début de lancement afin de s'assurer
qu'elle est totalement vide.
Seule la ligne 1 (ligne d'étiquettes) est copié vers la feuille de
destination
Attention aux coupures de ligne de code par le service de messagerie
'----------------------------------------------------------------
Sub test()
Dim R As Worksheet, Sh As Worksheet
e Dim DerLig As Long, A As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Set R = Worksheets("Récapitulatif")
R.Cells.Clear
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> "Récapitulatif" Then
With Sh
DerLig = .Range("A:M").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
If A = 0 Then
.Range("A1:M" & DerLig).Copy R.Range("A" & A + 1)
A = DerLig + 1
Else
With .Range("A1:M" & DerLig)
.Offset(1).Resize(.Rows.Count - 1).Copy R.Range("A" & A)
A = DerLig + .Rows.Count
End With
End If
End With
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'----------------------------------------------------------------
MichD
a écrit dans le message de groupe de discussion :
Bonjour à tous,
Dans un "workbook" contenant plusieurs feuilles, je voudrais copier le
contenu de la colonne A à la colonne M de toutes les feuilles et rapporter
le contenu dans une seule feuille (une feuille à la suite de l'autre) que je
nomme Récapitulatif.
Le nombre de feuilles peut être différent d'un mois à l'autre mais le nombre
de colonnes ayant du contenu est toujours le même, i.e. de A à M.
Et si ça peut aider, la dernière ligne utilisée commence toujours en colonne
A par Report Total.
Merci pour votre temps.
Denys
Avatar
denys59.p
Bonjour Denis,
Wow !!! Impressionnant et surtout extrêmement rapide!!!!
Cela fonctionne à merveille
Merci encore ça me sera très utile
Bonne fin de journée
Denys