Microsoft 365 Onglet tableau récap de plusieurs onglets

Lovelychris

XLDnaute Nouveau
Bonjour tout le monde,

J'ai tout fraichement rejoint le forum avec une requête bien spécifique :
Je cherche à ce que les infos des tableaux de tous les onglets, se basculent automatiquement lorsque l'on rempli les lignes dans l'onglet GENERAL TEST (qui serait une compilation automatique de tous les autres.

Il faudrai egalement que :
Cela fonctionne dès que l'on créée de nouvelles lignes fans chaque onglet
Cela fonctionne si j'ajoute un nouvel onglet par la suite

Est-ce possible ?

La j'ai vraiment besoin de vos lumieres car cela depasse largement mes capacites

Mille mercis !!!
 

Pièces jointes

  • TEST.xlsx
    48.5 KB · Affichages: 8

Lovelychris

XLDnaute Nouveau
Bonsoir Job75,

C'est exactement ca, l'onglet Menu etant la pour mes menus déroulants.
Mais potentiellement, je pourrai ajouter des onglets par la suite...

Le but, c'est de fusionner automatiquement les 4 onglets, dans cet onglet GENERAL TEST et qu'il se mette à jour si ajout de lignes...

Merci :)
 

job75

XLDnaute Barbatruc
Voyez le fichier .xlsm joint et cette macro dans le code de la feuille GENERAL TEST :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, h&
lig = 6 '1ère ligne de destination
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete xlUp 'RAZ
For Each w In Worksheets
    If w.Name <> Me.Name And UCase(w.Name) <> "MENU" Then
        With w.Range("B5").CurrentRegion.EntireRow
            h = .Rows.Count
            If h > 1 Then
                .Rows(2).Resize(h - 1).Copy Cells(lig, 1) 'copier-coller
                lig = lig + h - 1
            End If
        End With
    End If
Next
With [B5].CurrentRegion
    .Borders.Weight = xlThin
    .BorderAround Weight:=xlMedium 'contour
    .Rows(1).BorderAround Weight:=xlMedium
End With
End Sub
Elle se déclenche quand on active la feuille.

Bonne nuit.
 

Pièces jointes

  • TEST(1).xlsm
    50.7 KB · Affichages: 9

Lovelychris

XLDnaute Nouveau
Voyez le fichier .xlsm joint et cette macro dans le code de la feuille GENERAL TEST :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, h&
lig = 6 '1ère ligne de destination
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete xlUp 'RAZ
For Each w In Worksheets
    If w.Name <> Me.Name And UCase(w.Name) <> "MENU" Then
        With w.Range("B5").CurrentRegion.EntireRow
            h = .Rows.Count
            If h > 1 Then
                .Rows(2).Resize(h - 1).Copy Cells(lig, 1) 'copier-coller
                lig = lig + h - 1
            End If
        End With
    End If
Next
With [B5].CurrentRegion
    .Borders.Weight = xlThin
    .BorderAround Weight:=xlMedium 'contour
    .Rows(1).BorderAround Weight:=xlMedium
End With
End Sub
Elle se déclenche quand on active la feuille.

Bonne nuit.
OH WOW ! un ENORME MERCI

Sauriez-vous (et après je ne vous embête plus), comment je puisse faire pour conserver la séquence dans la colonne B, de manière "a la suite" sur l'onglet General ?
J'ai testé en faisant une extension sur la formule mais j'ai eu le droit à une erreur...
 

job75

XLDnaute Barbatruc
Bonjour Lovelychris, le forum,
Sauriez-vous (et après je ne vous embête plus), comment je puisse faire pour conserver la séquence dans la colonne B, de manière "a la suite" sur l'onglet General ?
Pas très clair mais si vous voulez récupérer les valeurs en colonne B voyez ce fichier (2) :
VB:
        With w.Range("B5").CurrentRegion.EntireRow
            h = .Rows.Count - 1
            If h > 0 Then
                .Rows(2).Resize(h).Copy Cells(lig, 1) 'copier-coller
                Cells(lig, 2).Resize(h) = .Cells(2, 2).Resize(h).Value 'récupère les valeurs de la colonne B
                lig = lig + h
            End If
        End With
Et si vous voulez numéroter toutes les lignes en colonne B voyez ce fichier (3) :
VB:
    If .Rows.Count > 1 Then .Cells(2, 1).Resize(.Rows.Count - 1) = "=N(R[-1]C)+1" 'numérotation en colonne B
Nota : la fonction SEQUENCE n'existe que sur les dernières versions Excel, pas chez moi sur Excel 2019.

A+
 

Pièces jointes

  • TEST(2).xlsm
    51.1 KB · Affichages: 2
  • TEST(3).xlsm
    51.2 KB · Affichages: 2

Lovelychris

XLDnaute Nouveau
C'est GENIAL ! Vraiment mille mercis.
Je pensais en avoir fini mais... Comment faire si je veux insérer un nouvel onglet qui lui, ne doit pas être pris en compte automatiquement dans le GENERAL (oui je suis relou...)
Et... Comment faire également pour que cette fameuse colonne B dans générale, ne reprenne pas automatiquement les colonnes B des autres onglets.

Après c'est sur, je n'ai plus rien :)
Voici le nouveau fichier, "vide" car j'ai dû retirer des élements sensibles

Encore merci pour tant de réactivité
 

Pièces jointes

  • TESTING v3.xlsm
    88.4 KB · Affichages: 8

job75

XLDnaute Barbatruc
Comment faire si je veux insérer un nouvel onglet qui lui, ne doit pas être pris en compte automatiquement dans le GENERAL.
Il suffit de l'exclure du traitement :
VB:
If w.Name <> Me.Name And UCase(w.Name) <> "MENU" And UCase(w.Name) <> "FEUIL3" Then
Comment faire également pour que cette fameuse colonne B dans générale, ne reprenne pas automatiquement les colonnes B des autres onglets.
Cela n'a pas d'importance, il suffit de retraiter la colonne B à la fin comme je le fait dans mon fichier (3).
 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 989
Membres
101 856
dernier inscrit
Marina40