Synthétiser plusieurs feuilles excel

Bahaoui

XLDnaute Nouveau
Bonjour la communauté,
Avant tout, je tiens à vous remercier pour votre aide et vos conseils.
Dans le cadre de ma mission de gestion de projet, j'ai essayé plusieurs solutions généralistes de gestion de projet, cependant aucune n'était vraiment adaptée a mon besoin.
Je me suis donc rabattu sur un tableau excel que j'essai d'améliorer au fur et à mesure.
Sur mon fichier excel, j'ai plusieurs feuilles (une feuille par projet) organisée de la même façon.
Je souhaite synthétiser l'ensemble des données sur une seule feuille.
J'ai essayé la fonction importrange (GSHEET) mais sans résultat, peut être faut il passer par un tableau croisé dynamique ?
En PJ mon modèle de tableau avec le résultat que je souhaiterai obtenir en feuille "RECAP"
Cette première phase me permettra de mieux appréhendé et synthétiser mes données avant de m'attaquer à d'autres volets tel que la planification (tout conseil est le bienvenu).

Un grand merci par avance pour votre aide
 

Pièces jointes

  • Modele gestion projet.xlsx
    16 KB · Affichages: 15

vgendron

XLDnaute Barbatruc
un essai ici
VB:
Sub recap()
Dim ws As Worksheet

LigneInit = 8
For Each ws In Sheets
    If ws.Name Like "Projet *" Then
        With ws
            Taille = .Range("A4").CurrentRegion.Rows.Count '.Copy
            .Range("A4").CurrentRegion.Offset(1, 0).Resize(Taille - 1).Copy Destination:=Sheets("RECAP").Range("B" & LigneInit)
            With Sheets("RECAP")
                .Range("A" & LigneInit) = ws.Name
                .Range("A" & LigneInit).Resize(Taille - 1).Merge
            End With
            LigneInit = LigneInit + Taille - 1

        End With
    End If
Next ws
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Trop rapide Vgendron !... J'envoie quand même puisque j'avais fait l'effort de commenter tout le code :


VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim R As Worksheet 'déclare la variable R (onglet Recap)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTInation)

Set R = Worksheets("RECAP") 'définit l'onglet R
R.Range("A7").CurrentRegion.Offset(1, 0).Rows.Delete 'efface d'éventuelle anciennes données de l'onglet R
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
    If Not O.Name = "RECAP" And Not O.Name = "Données" Then 'condition : si l'onglet ne se nomme ni RECAP ni Données
        Set DEST = R.Cells(Application.Rows.Count, "C").End(xlUp).Offset(1, -2) 'définit la cellule de destination DEST
        DL = O.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet O
        O.Range("A4:I" & DL).Copy DEST.Offset(0, 1) 'copie la plage A4:I... et la collle dans DEST
        DEST.Resize(DL - 3, 1).Merge 'fusion des cellules
        DEST.Value = O.Name 'envoie le nom de l'onglet O dans DEST
        DEST.VerticalAlignment = xlTop 'alignement vertical de DEST en haut
    End If 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub
 

vgendron

XLDnaute Barbatruc
avec des formules.. bah.. va falloir faire des ajustements à rallonge...
voir PJ

avant de cliquer sur le bouton qui lance la macro, regarde les formules que j'ai mises et que tu vas devoir adapter..... ou pas...

pour la macro. rien de bien compliqué. j'ai commenté le code
pour voir le code
1) ouvrir l'éditeur VBA : ALT+F11
2) cliquer sur le module
 

Pièces jointes

  • Modele gestion projet.xlsm
    32.1 KB · Affichages: 15

Bahaoui

XLDnaute Nouveau
Merci beaucoup pour votre aide les amis.
Un grand merci pour votre aide.
J'ai presque résolu mon problème en travaillant sur Google Sheet.
J'ai organisé mes données sur l'ensemble des feuilles de la même façon (même ordre....)
Pour regrouper mes données, j'utilise la fonction importrange, cependant, je souhaite importer de chaque feuille, sur une plage donnée, que les lignes non vide.
Actuellement, j'utilise la fonction suivante : ={IMPORTRANGE("Lien";"Feuille1!Plage");IMPORTRANGE(""Lien";"Feuille2!Plage"")}
Encore une fois, Merci les amis
 

Discussions similaires

Réponses
8
Affichages
453
Réponses
4
Affichages
347

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 129
dernier inscrit
Atruc81500