MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

coco008

XLDnaute Nouveau
Bonjour,

Je cherche une macro qui me permette de déverser automatiquement les informations de différents onglets « projets » (trente environ) dans un SEUL autre onglet appelé « tableau de synthèse. »

Dans ce tableau de synthèse, « chaque onglet projet »correspondrait à une ligne.
Tous les « onglets projets » sont en réalité la copie renommée du même template dans lequel on rajoute diverses informations.

J’ai réussi à trouver une première macro qui me permet de créer et renommer nouveaux onglets projets en copiant chaque fois et automatiquement le template de départ.


En revanche, je n’arrive pas à trouver un moyen de lier chaque « onglet projet » à une nouvelle ligne dans le tableau de synthèse, à chaque fois, excel me refait la même ligne en prenant les données du template de départ. Il confond donc le template et sa copie.
Que puis-je faire ?

Merci de votre aide:confused:

PS : ci dessous la macro qui bloque :

Sub Macro2()
'
' Macro2 Macro
'

'
Sheets("Tableau de synthèse").Select
Rows("8:8").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("B8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[-6]C[4]"
Range("C8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[-1]C[5]"
Range("D8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!RC[4]"
Range("E8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[1]C[3]"
Range("F8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[20]C[2]"
Range("G8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[19]C[1]"
Range("H8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[21]C"
Range("I8").Select
ActiveCell.FormulaR1C1 = "='Template projet'!R[20]C[1]"
Range("I9").Select
Sheets("Template projet").Select
End Sub
 

JCGL

XLDnaute Barbatruc
Re : MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

Bonjour à tous,

Bienvenue sur XLD

Il est recommandé de déposer un bout de fichier pour effecruer les tests.
Il est aussi recommandé d'utiliser les balises pour déposer du code.

Peux-tu essayer avec ceci :
VB:
Option Explicit


Sub Test()
    Dim Lig&, DerL&
    DerL = Feuil1.Range("B" & Rows.Count).End(xlUp).Row + 1
    Sheets("Tableau de synthèse").Select
    Rows("8:8").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    For Lig = 8 To DerL
        Range("B" & DerL).Formula = "='Template projet'!R[-6]C[4]"
        Range("C" & DerL).Formula = "='Template projet'!R[-1]C[5]"
        Range("D" & DerL).Formula = "='Template projet'!RC[4]"
        Range("E" & DerL).Formula = "='Template projet'!R[1]C[3]"
        Range("F" & DerL).Formula = "='Template projet'!R[20]C[2]"
        Range("G" & DerL).Formula = "='Template projet'!R[19]C[1]"
        Range("H" & DerL).Formula = "='Template projet'!R[21]C"
        Range("I" & DerL).Formula = "='Template projet'!R[20]C[1]"
    Next Lig
    Sheets("Template projet").Select
End Sub

A+ à tous
 

coco008

XLDnaute Nouveau
Re : MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

Bonjour,

Merci de vos réponses! Mais je n'y arrive toujours pas:(
Je vous mets en pièce jointe mon fichier pour être plus claire!

Donc quand on ouvre le fichier, le but est de :

1) quand on clique sur le bouton "créer une fiche projet" => créer une nouvelle copie de l'onglet "fiche projet" et la renommer par le nom du projet. (Comme ca a été fait pour pour Agriculteur_vert_2 grâce à la macro 1 qui fonctionne)

2) Puis, quand un onglet projet est créé, déverser systématiquement les informations demandées de la fiche projet vers le tableau de synthèse en créant une ligne.

J'ai réussi à créer les liens pour une fiche (Agriculteur_vert_2 grâce à la Macro 2), mais dès que je créé d'autres projets, je suis obligée de changer manuellement le nom de la feuille dans VBA pour refaire les liens... alors que je veux justement que cette manipulation soit automatisée

Que puis-je faire?

Merci d'avance
 

Pièces jointes

  • test.xlsm
    54.2 KB · Affichages: 55
  • test.xlsm
    54.2 KB · Affichages: 63
  • test.xlsm
    54.2 KB · Affichages: 66

JCGL

XLDnaute Barbatruc
Re : MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

Bonjour à tous,

Un essai...
  • Créer la feuille avec le bouton de la feuille 'Créer Projet'
  • Une fois la feuille créée et renseignée, cliquer sur le bouton de la feuille nouvellement créée et renseignée pour l'archivage
A+ à tous
 

Pièces jointes

  • JC test.xlsm
    92.8 KB · Affichages: 80
  • JC test.xlsm
    92.8 KB · Affichages: 84
  • JC test.xlsm
    92.8 KB · Affichages: 100

coco008

XLDnaute Nouveau
Re : MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

Merci JCGL!

C'est le principe! le seul truc c'est que "l'archivage" fixe les données dans le tableau de synthèse. Or, le fichier fonctionne par mise à jour : si je change un truc dans une fiche projet (je réestime une date ou je change le planning) il faudrait que la donnée se mette à jour automatiquement dans le tableau de synthèse ce qui n'est pas la ca ici ...

Voilà, si vous avez d'autres suggestions pour le casse tête... Elles sont les bienvenues :D

Merci à tous pour votre aide

A plus!
Coco0008
 

JCGL

XLDnaute Barbatruc
Re : MAcro/VBA Consuire un tableau de synthèse à partir à partir de plusieurs onglets

Bonjour à tous,

Remplage le code existant par ceci :

VB:
Sub Archivage()
    With Feuil3
        .Rows("8:8").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
        .Range("B8").FormulaLocal = "='" & ActiveSheet.Name & "'!F2"
        .Range("C8").FormulaLocal = "='" & ActiveSheet.Name & "'!H7"
        .Range("D8").FormulaLocal = "='" & ActiveSheet.Name & "'!H8"
        .Range("E8").FormulaLocal = "='" & ActiveSheet.Name & "'!H9"
        .Range("F8").FormulaLocal = "='" & ActiveSheet.Name & "'!N11"
        .Range("G8").FormulaLocal = "='" & ActiveSheet.Name & "'!H28"
        .Range("H8").FormulaLocal = "='" & ActiveSheet.Name & "'!H27"
        .Range("I8").FormulaLocal = "='" & ActiveSheet.Name & "'!H29"
        .Range("J8").FormulaLocal = "='" & ActiveSheet.Name & "'!J28"
        Range("A1").Select
        .Activate
    End With

A+ à tous
 

Discussions similaires

Réponses
7
Affichages
315

Statistiques des forums

Discussions
312 153
Messages
2 085 802
Membres
102 981
dernier inscrit
fred02v