XL 2019 Récupérer en automatique les infos dans un tableau

christ77000

XLDnaute Occasionnel
Bonsoir à tous, j'ai dans un tableau les données de plusieurs entreprises. J'extrait les données de trois champs dans un graphique croisé dynamique.
Je souhaiterais faire une feuille par société juste en récupérant le nom de cette feuille puis aller chercher en automatique les champs correspondant. Je joint un extrait du fichier comme exemple.

Merci pour votre aide.
 

Pièces jointes

  • Suivi du traitements des OT - Copie.xlsm
    110.8 KB · Affichages: 20
Solution
Bonsoir à toutes & à tous,
bonsoir @christ77000
essayer de comprendre comment tu avais repris les données des sociétés pour les isoler dans leurs propre feuille.
Ça c'est fait par la macro Private Sub CBn_Ajouter_Click() du formulaire.
Dans cette partie :
With sh.PivotTables("Etat Mensuel")
'Rajouter les champs des valeur du TCD
.AddDataField .PivotFields(Nom & " Nb OT"), "Nb OT", xlSum
.AddDataField .PivotFields(Nom & " Nb OT terminé"), "Nb OT terminé", xlSum
.AddDataField .PivotFields(Nom & " OT restant"), "OT restant", xlSum

Nom contenant le nom de l'entreprise.
AddDataField ajoute le champ de données avec le nom personnalisé et la fonction utilisée.

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour à toutes & à tous,
bonjour @christ77000

Je croyais que tu étais familié des TCD et des Graphique de TCD en voyant ton 1er exemple mais ...
Lorsque les données de ton tableau source changent, il faut actualiser tes TCD.

Tu peux ajouter des colonnes dans ton tableau "_tb_Entretien" de la feuille Archives, mais pas n'importe quoi.
Dans ton exemple la colonne "Date de l'entretien" contient maintenant un pourcentage et la Date de l'entretien est contenue dans la colonne "Colonne1" les TCD ne s'y retrouvent plus .
Voilà un gif qui explique comment ajouter/supprimer une colonne d'un tableau structuré :
Voir PJ

Ensuite, il faut actualiser les TCD : clic droit sur une cellule du TCD et Actualiser :
Ensuite tu peux, en fonction de ce que représente cette colonne, la placer comme un filtre, colonne, ligne ou valeur dans ton TDC. :
Voir PJ


Sur le Modèle TdB, la zone Valeurs du TCD est vide, la macro rajoute en fonction de l'entreprise choisie les 3 colonnes qui la concernent. :
Exemple pour Hydrolec
1678979209432.png

En ayant personnalisé le nom (Nb OT pour somme de Hydrolec Nb OT)

Pour les couleurs des 1er graphes ("Graph Mensuel"), le modèle ne comportant pas de champ "Valeurs" on ne peut pas prédéfinir ces couleurs, j'ai ajouté un bout de code dans la procédure Private Sub CBn_Ajouter_Click() du formulaire :
Enrichi (BBcode):
...

Set chrt = sh.ChartObjects("Grph_Mensuel").Chart
     'Couleur des histogrammes du graphique "Grph_Mensuel"
     With chrt
          With .FullSeriesCollection(1).Format.Fill
               .Visible = msoTrue
               .ForeColor.RGB = RGB(79, 129, 189)     'Bleu
               .Transparency = 0
               .Solid
          End With
          With .FullSeriesCollection(2).Format.Fill
               .Visible = msoTrue
               .ForeColor.RGB = RGB(155, 187, 89)      'Vert
               .Transparency = 0
               .Solid
          End With
          With .FullSeriesCollection(3).Format.Fill
               .Visible = msoTrue
               .ForeColor.RGB = RGB(192, 80, 77)       'Rouge
               .Transparency = 0
               .Solid
          End With
     End With
...
Tu peux choisir les composantes RGB que tu veux. Pour les connaître, une astuce :
Colorie un cellule avec la couleur que tu veux, pour le remplissage, choisis autres couleurs et personnalisées, choisis ta couleur et relève les composantes rouge, vert, bleu. Place la dans la fonction RGB du code.

Voilà pour un premier point.
Un conseil, crée toi un nouveau TCD sur une feuille vierge, Sélectionne une cellule de ton tableau de la feuille Archives, Insertion, Tableau Croisé Dynamique, Nouvelle feuille de calcul et lance toi !
Quand tu auras créé ton tableau, ajoute un segment (Analyse du tableau croisé dynamique, insérer un segment ... Puis insère un graphique etc...
 

Pièces jointes

  • Suivi du traitements des OT V03.xlsm
    458.4 KB · Affichages: 4
  • Ajouter colonne.gif
    Ajouter colonne.gif
    240.5 KB · Affichages: 14
  • Actualiser TCD.gif
    Actualiser TCD.gif
    307.1 KB · Affichages: 14
Dernière édition:

christ77000

XLDnaute Occasionnel
Bonsoir Alain, alors pour les TCD je l'ai manipule mais pas comme toi c'est une évidence, il m'en reste encore beaucoup a apprendre. Mais oui fait un tableau et en extraire des graphiques et mettre en place des segments je sais faire. Merci pour tes explications.

Et les TCD plus a leurs place normal j'ai fais des testes pour essayer de comprendre comment tu avais repris les données des sociétés pour les isoler dans leurs propre feuille. c'est cette manipulation la que je ne comprend pas.
J'ai le fichier sans boulettes a la maison je vais comparer tes macros et faire les changement manuellement.

En tout cas un énorme merci pour ton aide.
 
Dernière édition:

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir à toutes & à tous,
bonsoir @christ77000
essayer de comprendre comment tu avais repris les données des sociétés pour les isoler dans leurs propre feuille.
Ça c'est fait par la macro Private Sub CBn_Ajouter_Click() du formulaire.
Dans cette partie :
With sh.PivotTables("Etat Mensuel")
'Rajouter les champs des valeur du TCD
.AddDataField .PivotFields(Nom & " Nb OT"), "Nb OT", xlSum
.AddDataField .PivotFields(Nom & " Nb OT terminé"), "Nb OT terminé", xlSum
.AddDataField .PivotFields(Nom & " OT restant"), "OT restant", xlSum

Nom contenant le nom de l'entreprise.
AddDataField ajoute le champ de données avec le nom personnalisé et la fonction utilisée.
 

christ77000

XLDnaute Occasionnel
Bonsoir Alain, merci pour l'explication.
Une petite question si je rajoute dans l'archive la possibilité de saisir plus de société en ajoutant des champs dans la continuité. Normalement si j'ai bien compris il seront bien pris en compte dans tes macro. Car je viens de saisir les derniers chiffre et je suis limite pour le nombre de société.
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir @christ77000
bonsoir tout le monde,
Dans la feuille "Tables", la formule qui recherche les entreprises cherche dans les titres du tableau tous les titres de plus de 6 caractères qui se terminent par " Nb OT" (avec un espace en tête).
Cette formule est dynamique, donc si tu respectes ce formalisme, la combo du formulaire te proposera toutes les entreprises (sauf celles pour lesquelles la feuille existe déjà).
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 252
Membres
102 837
dernier inscrit
CRETE