Copier les lignes de plusieurs onglets dans un onglet synthèse

Bonjour,

Voici mon problème :
J'ai un fichier Excel comprenant plusieurs onglets (de "18" à "XX") avec le même tableau dans chaque onglet (exactement la même présentation). Dans un onglet synthèse (situé à la fin des onglets), je souhaite reprendre les lignes non vides d'une plage A4:M23 (donc 20 lignes max) de chaque onglet afin d'avoir une vue globale de tous les onglets. Cette macro s'actualiserai à chaque fois qu'on arrive sur l'onglet synthèse. La première ligne de l'onglet synthèse reprendrai l'intitulé des colonnes présentes dans chaque onglet et donc ne bougerai pas. J'utilise également un onglet "choix" pour mes listes déroulantes qui ne doit pas être repris dans la synthèse.

Afin de ne pas arriver les mains vides, voici ce que j'ai fait :

Private Sub Worksheet_Activate()
Dim dlgR As Integer, dlgi As Integer
Dim i As Byte
With Sheets("Synthèse")
dlgR = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A2:M" & dlgR).ClearContents
End With
For i = 1 To Worksheets.Count
Select Case UCase(Sheets(i).Name)
Case Is = "Synthèse"
Case Is = "Choix"
Case Else
dlgR = Sheets("Synthèse").Range("A" & Rows.Count).End(xlUp).Row
With Sheets(i)
dlgi = Range("A4", Range("A65535").End(xlUp)).Rows.Count
.Range("A4:M" & dlgi).Copy Sheets("Synthèse").Range("A" & dlgR + 1)
End With
End Select
Next
End Sub

Ce qui bug :

- il ne m'efface pas l'onglet synthèse correctement
- je patauge dans la sélection des lignes à copier
- il reprend quand même l'onglet "synthèse" et "choix"

Elément important au cas ou, le classeur sera partagé.

Si besoin, je peux vous envoyer mon fichier.

Je vous remercie par avance pour l'aide que vous m'apporterez.

Bonjour et bienvenue,

oui, un fichier aurait été nécessaire

voici un exemple

42compil-onglets.xlsm (21.81 Ko)

Steelson,

grâce à votre fichier que j'ai adapté à mes besoins, ça fonctionne !

Un grand merci

Parfait ! clos le fil de discussion en cliquant sur

Rechercher des sujets similaires à "copier lignes onglets onglet synthese"