Synthese dans une feuille

Cazinos

XLDnaute Occasionnel
Bonsoir le forum,


Comment copier avec une macro le contenu de 8 feuilles dans une feuille de synthèse en sachant que le nombre de ligne varie.


Je joint un fichier d'exemple

Merci

Cazinos
 

Pièces jointes

  • ClasseurSynthèse.zip
    2.6 KB · Affichages: 36

Kotov

XLDnaute Impliqué
Re : Synthese dans une feuille

Bonsoir Cazinos,

Je te propose le code suivant :
Code:
Sub Synthèse()
Dim n&
Dim Sh As Worksheet, Sy As Worksheet
Set Sy = Sheets("SYNTHESE")
For Each Sh In Worksheets
    If Sh.Name <> Sy.Name Then
        Sh.Cells(1, 1).CurrentRegion.Copy
        n = Sy.Cells(65536, 1).End(xlUp).Row + 1
        With Sy
            .Activate
            .Cells(n, 1).Select
            .Paste
            Rows(n).Delete Shift:=xlUp
        End With
        Application.CutCopyMode = False
    End If
Next
Set Sh = Nothing
Set Sy = Nothing
End Sub

Bonne soirée
Kotov


Edit : bonsoir Smotty, n'ayant pas rafraîchi l'écran, je fais doublon.
Je vois qu'on a sensiblement la même approche. A +
 
Dernière édition:

Cazinos

XLDnaute Occasionnel
Re : Synthese dans une feuille

bonjour,

Je viens de m'appercevoir que sur dans mon classeur ca ne marche pas parce que mes onglet son nommés et en plus les numéro de feuille ne se suivent pas.

est ce possible de faire la synthèse avec 8 noms d'onglet différent : CR BX ERREUR, CR CF ERREUR, CR CP ERREUR, CR SG ERREUR, CR BX OK, CR CF OK, CR CP OK, CR SG OK

merci
 

Kotov

XLDnaute Impliqué
Re : Synthese dans une feuille

Bonsoir Cazinos,

Que tes onglets soient nommés n'est pas source de blocage sauf pour la feuille qui assure le recollement des données.

Ainsi, dans la macro que je t'ai proposé, la boucle passe en revue tous les onglets sans importance accordée aux noms, aux rangs.

Tu dois simplement modifier la ligne suivante :
Set Sy = Sheets("SYNTHESE")
en remplaçant "SYNTHESE" par le nom de ta feuille qui assure le regroupement des données
En effet, la macro compare le nom de chaque feuille et colle les données si le nom de la feuille active est différent du nom de la feuille de synthèse (il serait illogique de copier la synthèse dans elle même). La feuille Sy bloque parce que la macro recherche le nom "SYNTHESE" et ne le trouve pas.

Tiens nous au courant

A +
Kotov
 

Cazinos

XLDnaute Occasionnel
Re : Synthese dans une feuille

Bonsoir et merci,

Je me suis mal expliqué, j'ai besoin de faire une sythèse sur les feuilles ci-desous et uniquement sur les huit citées ci-dessous car le classeur contient plus de 8 feuilles

est ce possible de faire la synthèse avec 8 noms d'onglet différent : CR BX ERREUR, CR CF ERREUR, CR CP ERREUR, CR SG ERREUR, CR BX OK, CR CF OK, CR CP OK, CR SG OK

Cazinos
 

Kotov

XLDnaute Impliqué
Re : Synthese dans une feuille

Bonjour Cazinos,

J'ai modifié la macro (lignes bleues)

Code:
Sub Synthèse()
Dim n&
Dim Sh As Worksheet, Sy As Worksheet
Set Sy = Sheets("SYNTHESE")
For Each Sh In Worksheets
   [color=blue] Select Case Sh.Name
       Case "CR BX ERREUR", "CR CF ERREUR", "CR CP ERREUR", "CR SG ERREUR", "CR BX OK", "CR CF OK", "CR CP OK", "CR SG OK"[/color]
        Sh.Cells(1, 1).CurrentRegion.Copy
        n = Sy.Cells(65536, 1).End(xlUp).Row + 1
        With Sy
            .Activate
            .Cells(n, 1).Select
            .Paste
            Rows(n).Delete Shift:=xlUp
        End With
        Application.CutCopyMode = False
    [color=blue]End Select[/color]
Next
Set Sh = Nothing
Set Sy = Nothing
End Sub

D'ou l'importance de bien préciser sa demande pour éviter de partir sur de fausses pistes.

Bonne soirée
Kotov
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Synthese dans une feuille

Bonsoir,

Code:
Sub consolide_onglets()
  Sheets("synthese").[A1].CurrentRegion.Offset(1, 0).Clear
  For Each s In Array("1", "2", "3", "4", "5")
     Sheets(s).[A1].CurrentRegion.Offset(1, 0).Copy _
        Sheets("synthese").[A65000].End(xlUp).Offset(1, 0)
  Next s
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • Copie de ClasseurSynthèse.zip
    13.2 KB · Affichages: 43

Discussions similaires