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

  • Initiateur de la discussion Initiateur de la discussion coco008
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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😕

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
 
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
 
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

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

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 😀

Merci à tous pour votre aide

A plus!
Coco0008
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
243
Retour