Tableau de synthèse

Bonjour,

Je viens à vous car mes tableaux deviennent de plus en plus gros. Et les traitements manuels que j'en fais sont source d'erreur.

J'attache en PJ mon fichier d'exemple.

J'ai un tableau de données (onglet BDD) contenant des noms de société (toto, tutu tyty), de secteurs (secteur1, secteur2, secteur3), de produits (Pomme, Poire, Prune), et de production par année en fonction des usines (Prod1 et Prod2). En réalité, j'ai bien plus de sociétés, secteurs, produits et usines dans mon fichier

Je veux construire un tableau de synthèse par société, secteur et type de produit, en fonction des usines (voir onglet "synthèse").

Aujourd'hui, je procède à la main. Je définis un TCD. Quand je choisis la société, je copie colle la production en dessous. Et je vais chercher les valeurs pour alimenter ma synthèse à la main.

Existe-t-il un moyen d'effectuer ces tâches automatiquement ?

Est-il possible d'avoir des formules que je puisse changer facilement si au lieu de devoir calculer "Prod1 Secteur1 (Pomme+Prune)", je doive calculer "Prod1 Secteur1 (Pomme+Prune+Poire) ?

Autre question: aujourd'hui, mes tableaux sont en "dur". Est-il possible de manière automatique un tableau de synthèse où je renseignerais les sociétés que je veux voir, les secteurs que je veux voir en fonction des produits et des usines ?

Merci par avance pour votre aide.

Bien à vous,

15exemples-prod.xlsx (45.98 Ko)

Bonjour,

Je pense que le mieux est de refaire une base de données avec comme entêtes

Compagnie    Secteur        Produits        Prod    Année

via une macro

ensuite de faire un TCD et un seul avec des segments

Merci Steelson.

Y aurait-il un moyen de m'en sortir avec des formules stp ?

Merci.

babou

Crée un onglet BDD2

Sub nouvelleBdD()
Sheets("BDD2").Select
iRow = 2
With Sheets("BDD")
    For ligne = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
        For colonne = 4 To .Cells(1, Columns.Count).End(xlToLeft).Column
            Cells(iRow, 1) = .Cells(ligne, 1)
            Cells(iRow, 2) = .Cells(ligne, 2)
            Cells(iRow, 3) = .Cells(ligne, 3)
            Cells(iRow, 4) = Split(.Cells(1, colonne), " ")(0)
            Cells(iRow, 5) = Split(.Cells(1, colonne), " ")(1)
            Cells(iRow, 6) = .Cells(ligne, colonne)
            iRow = iRow + 1
        Next
    Next
End With
End Sub

Y aurait-il un moyen de m'en sortir avec des formules stp ?

hum ... cela risque d'être très très lourd !! et très complexe ...

bonjour

salut Steelson

sans aucun VBA, ni aucune formule

ça prend 1 minute, et maintenant il suffit de cliquer "acutaliser"

faire menu Power Query, obtenir de plage

attention, il faut dépivoter les colonnes années (le bouton est dans le menu de PQuery, mais il faut un peu tâtonner pour y parvenir)

si besoin

https://www.youtube.com/watch?v=gwW2CDdvUUs

Bonjour,

Une proposition à étudier.

Cdlt.

8exemples-prod.xlsx (62.03 Ko)

Bonjour Babou

Y aurait-il un moyen de m'en sortir avec des formules stp ?

C'est plus simple que ce que je pensais

5exemples-prod.xlsx (29.03 Ko)

Mais je préconise quand même de recréer ta base comme préconisé. Il y a 2 solutions :

  • par VBA
  • en effet pas PowerQuery le couteau suisse (*)
5exemples-prod.xlsm (91.68 Ko)

(*) Hello les amis ... PowerQuery, mais c'est bien sûr !

Bon je sais l'utiliser avec des URL, même si cela ne fonctionne pas à tous les coups sur certaines pages

Il faut que je m'y mettes, promis, dès cette semaine au moins pour ce cas de figure qui revient périodiquement ...

Bonjour,

Merci à vous tous.

Je suis séduit par la version formule. Mais je vais étudier l'ensemble de vos suggestions.

Je suis impressionné par les TCD que vous avez créés, ainsi que curieux de découvrir ce qu'est PowerQuery. Je regarde tout cela et reviens vers vous en cas de question.

Merci encore.

Très bonne journée.

Rechercher des sujets similaires à "tableau synthese"