Copier contenu variable de plusieurs feuilles en une seule !!!
2 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 :
83d549c0-f400-4892-a669-a5b82e238f81@googlegroups.com...
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.
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
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
Bonjour Denis,
Wow !!! Impressionnant et surtout extrêmement rapide!!!!
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