Tableau croisé dynamique en formule ou macro.

Jperret

XLDnaute Nouveau
Bonjour à tous,
J’aurai besoin de votre aide car j’aimerai synthétiser des données récoltées mensuellement dans plusieurs onglets (1 onglet par mois de janvier à décembre) dans 3 tableaux synthétiques (onglets de couleurs : «Recap mensuel F» ; «Recap mensuel Code» ; «T journaliere »)
Il s’agirait je pense d’une formule ou macro qui fasse le travail d’un « rechercheV » ou d’un tableau croisé dynamique mais en plus flexible et surtout qui puisse classer par ordre décroissant.
Dans l’onglet en jaune nommé «Recap mensuel F», j’aimerai croiser les données de la colonne A « Nom » avec les données de la colonne F «HT » et la colonne I « Mois » de tous les onglets mensuels. Puis classer par ordre décroissant par rapport à la colonne N « Total ». J’ai mis en jaune les colonnes concernées dans chaque onglet mensuel.
Dans l’onglet en bleu nommé «Recap mensuel Code», j’aimerai croiser les données de la colonne K «Code1» avec les données de la colonne F «HT » et la colonne I « Mois » de tous les onglets mensuels. Puis classer par ordre décroissant par rapport à la colonne N « Total ». J’ai mis en bleu les colonnes concernées dans chaque onglet mensuel.
Enfin, Dans l’onglet en vert nommé «T journalier», j’aimerai croiser les données de la colonne E «Date» avec les données de la colonne H «TTC » de tous les onglets mensuels. J’ai mis en vert les deux colonnes concernées dans chaque onglet mensuel.

Merci par avance de votre aide.

Amicalement,
JPP
 

Pièces jointes

  • tableau recap V1.xlsx
    423 KB · Affichages: 39

chris

XLDnaute Barbatruc
Re : Tableau croisé dynamique en formule ou macro.

Bonjour
  1. Code:
    =SOMME.SI(INDIRECT(B$1&"!A:A");$A2;INDIRECT(B$1&"!H:H"))
  2. Code:
    =SOMME.SI(INDIRECT(B$1&"!K:K");$A2;INDIRECT(B$1&"!H:H"))
  3. Code:
    =SOMME.SI(INDIRECT(CHOISIR(MOIS(B$2);"Janvier";"Fevrier";"Mars";"Avril")&"!I:I");B$2;INDIRECT(CHOISIR(MOIS(B$2);"Janvier";"Fevrier";"Mars";"Avril")&"!H:H"))
    (mois à compléter).
    Ce serait à mon avis plus pratique dans l'autre sens...

Edit Arf : j'ai pas vu qu'il fallait les 12 onglets et analyser la colonne I : pas besoin d'INDIRECT mais il faut des SOMME.SI.ENS pour ajouter une condition sur la colonne I et en additionner 12... sinon il y a aussi la solution de JB Formules Matricielles 3D

Pour une solution TCD, il faudrait passer par une requête (MSQUERY OU POWER QUERY si installé) pour synthétiser les 12 mois ou bien par POWERPIVOT si tu as la version pro plus de 2013...

Edit 2 : j'ai testé la méthode de JB : vu le nombre de données cela rame... d'autant plus qu'il faut calculer les mois par rapport à la colonne de date.
Reste VBA ou les TCD selon mes remarques précédentes.
 
Dernière édition:

Jperret

XLDnaute Nouveau
Re : Tableau croisé dynamique en formule ou macro.

Merci à tous pour vos conseils. Pourriez vous intégrer vos formules dans une 1 ou 2 cellules dans le fichier joint afin que je puisse bien comprendre vos suggestions.

Merci par avance de votre aide.

Cordialement.

JPP
 

chris

XLDnaute Barbatruc
Re : Tableau croisé dynamique en formule ou macro.

Re

Comme indiqué en edit : ce type de formule rame... donc je conseillais VBA ou les TCD mais les pistes TCD, comme je disais, dépendent de ta version 2013 que tu n'as pas précisée (pro plus ou pas pro plus).

Solution beaucoup plus simple : mettre tout dans le même onglet dès le départ : il est plus facile de découper que de regrouper...
 

Habitude

XLDnaute Accro
Re : Tableau croisé dynamique en formule ou macro.

Bonjour

Structure de données conservée dans des modules de classe.
Consultation en orienté objet.


En espérant avoir bien compris la demande.
 

Pièces jointes

  • tableau recap V1 (1).xlsm
    468.4 KB · Affichages: 53

Jperret

XLDnaute Nouveau
Re : Tableau croisé dynamique en formule ou macro.

bonjour,

merci de passer du temps pour m'aider. Vous avez compris pour sure ma demande. Néanmoins un certain nombre de problèmes subsistent.
Tout d'abord le format .xlsm prend beaucoup de temps à ouvrir VS .xls sur mon ordinateur.
Après voir cliquer sur le bouton "données" :
Dans l'onglet "T journalière" nous devrions obtenir dans la cellule CW le résultat 41451.32€ alors que dans votre tableau on trouve 39291.12€
Dans l'onglet "recap mensuel F" certain chiffres sont sous format texte au lieu d'être en format nombre.
Dans l'onglet "recap mensuel code", il y a des chiffres anormalement élevés (ex: 881966399999999€ dans la cellule H2 au lieu de 82563.60€ normalement).

Pouvez vous m'aider ? (n'hésitez pas à me contacter sinon 0608018281 ou jperret_2000@yahoo.fr)

Un grand merci encore.
 

Habitude

XLDnaute Accro
Re : Tableau croisé dynamique en formule ou macro.

Bonjour



Étant de l'autre coté de l'océan, il m'est aussi de vous contactez au 0608018281.

Pour Xlsm, j'ai ajouter un fichier au format Excel 2003.

J'avais inversé les HT et TTC partout! Ceci devrait régler tes problèmes de montant.

Pour les nombres sous format texte, j'ai ajouter une mise en forme dans le code.

Merci
 

Pièces jointes

  • tableau recap V1.xlsm
    474.4 KB · Affichages: 39
  • tableau recap V1 format 2003.xls
    948 KB · Affichages: 37
Dernière édition:

Jperret

XLDnaute Nouveau
Re : Tableau croisé dynamique en formule ou macro.

Bonjour.

Merci pour votre fichier. j'ai utilisé la version 2003 j'ai renommé le fichier "tableau recap V4 format 2003" puis j'ai remplacé dans chaque onglet mensuel les noms de fournisseurs et les montants. Lorsque j'ai exécuté la macro le messae d'erreur suivant est apparu : "Erreur d'execution 13 incompatibilité de type " puis en cliquant sur déboguer il est surligner en jaune la ligne suivante :

d.Add Month(.Range("I" & i)), .Range("A" & i), .Range("K" & i), .Range("F" & i), CLng(.Range("E" & i)), .Range("H" & i)

Pourriez vous m'aider s'il vous plait à faire fonctionner cette macro ?

Merci d'avance.
 

Habitude

XLDnaute Accro
Re : Tableau croisé dynamique en formule ou macro.

Bonjour


Quand ta ligne est jaune, prend en note la valeur de i et de nomF en laissant la souris dessus quelque secondes.
Et valide les données de la feuille nomF à la ligne i.


Colonne I doit avoir une date
Colonne A, du texte
Colonne K, du texte
Colonne F, un nombre
colonne E, une date
colonne H, un nombre
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 885
Membres
101 830
dernier inscrit
sonia poulaert