Automatisation tableau croisé dynamique

Fermé
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 - 19 déc. 2012 à 13:56
 Maxoo - 6 mars 2013 à 13:32
Bonjour, Bonjour, j'ai une base de donnée sur laquelle il ya des informations suivantes en colonnes types de produit, objet, entité, nominal, devise, taux, sept, variation sept oct , oct, variation oct nov, nov. Pour les colonnes suivantes type de produit, objet, entité, nominal, devise, taux,sept, variation sept oct, les données sont saisies. Tandis que pour la colonne oct la formule est sept+variation sept/oct, pour la colonne nov la formule est =I5/RECHERCHEV(F5;'Cours dev'!$C$5:$D$12;2;0) et pour la colonne nov la formule est oct + variation oct/nov. Sachant qu'en plus de ma base de donnée j'ai un tableau sur lequel il ya les cours des différentes devises de chaque mois. Ma question est comment faire pour avoir un tableau croisé dynamique automatique grâce à une macro de telles sorte que je puisse avoir un tableau croisé dynamique avec les colonnes suivantes types de produits, objet, devise, entité, les données du mois de sept, variation sept/oct, oct, variation oct/nov, nov et les données à venir c'est à dire toujours en colonne variation nov/dec, dec, variation dec janvier, janv etc sachant que j'actualise ma base de données avec les nouvelles données du mois. Mon objectif est de tout automatiser grace à une macro et une programmation. Merci pour votre réponse c'est vraiment urgent





9 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
Modifié par gbinforme le 26/12/2012 à 10:51
bonjour,

Un petit exemple avec les menus concernés :

https://www.cjoint.com/?BLAkWQz8Kti

Si tu rajoutes des lignes ou des colonnes elles sont actualisées.

Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
27 déc. 2012 à 10:19
mercii pour ta réponse mais je ne trouve pas le menu formule gestionnaire de nom ou se trouve t'il? Désolé de te poser des questions aussi basiques
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 déc. 2012 à 10:30
Onglet "Formules" au centre "gestionnaire de noms" sur 2007/2010

Menu "insertion" "noms" puis "définir" sur version précédentes.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
27 déc. 2012 à 11:20
merciii j'ai trouvé mais par contre la formule suivante =DECALER($A$1;;;NBVAL($A:$A);NBVAL($1:$1)) je dois la copier telle qu'elle ait ou la modifier selon le nombre de colonne et de ligne que j'ai? Car je n'arrive pas à l'adapter en fonction de ma base de données.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
27 déc. 2012 à 11:27
supposant que j'ai une base données avec 5 colonnes a,b,c,d,e et 7 lignes 1,2,3,4,5,6,7 dans lequel il ya des données différentes quelle est alors la formule correspondante à mon tableau à partir de la formule =DECALER($A$1;;;NBVAL($A:$A);NBVAL($1:$1)) ???? merci pour ta réponse
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 déc. 2012 à 18:34
La formule part de A1 fixé en $A$1 (la cellule de départ) et crée un tableau :
- avec un nombre de lignes NBVAL($A:$A) soit le nombre de lignes renseignées sur la colonne A
- avec un nombre de colonnes NBVAL($1:$1) soit le nombre de colonnes renseignées de la ligne 1

Tu peux bien sûr avoir ton tableau situé ailleurs et il faut modifier en conséquence.

Attention, comme toute base de données, tu ne dois pas avoir de lignes vide en colonne A
Comme pour tout TCD, ta ligne titre doit avoir des noms de rubriques uniques et renseignées.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
28 déc. 2012 à 09:52
je suis désespérée, ça ne marche pas!!!!
0
Tessel75 Messages postés 192 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 janvier 2013 22
31 déc. 2012 à 03:54
Bonjour,
Pour pouvoir te répondre il est indispensable d'avoir le tableau en main, car pour établir une macro telle que tu souhaites, il faudra poser des paramètres et indiquer où ils se trouvent et quoi en faire.

Dans la macro que tu envoies, on peut lire des lignes telles que :

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Sept YTD")
ou
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields(
"Variation sept/oct €")

et encore
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Oct YTD")

et plusieurs autres avec une écriture similaire.

Aussi tout cela devra être paramétré sous une forme ou une autre pour dire au code où aller chercher ces "données", ou qu'il change les appellations pour indiquer sur quelles séries de données travailler.
Mais dans l'état actuel des choses, avec de telles indications au milieu de ton code, il est normal que tes macros ne puissent pas tourner comme tu veux et te ramener des synthèses sur décembre ou la variation Novembre/Décembre. Elles ne figurent pas dans la transcription du code.

En attendant ton tableau via cjoint.com, bonne journée.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
1 janv. 2013 à 17:38
Bonjour à vous,
je veux bien mettre les données via cjoint.com mais je voudrais savoir si l'accès à ces données est limitée et à qui? ou tout le monde à accès car se sont des données assez importante mais en même temps j'ai vraiment besoin de votre aide car et je n'y arrive vraiment pas et c'est vrai qu'avec le fichier joint se serait plus facile merci pour votre réponse. Bonne fin de journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tessel75 Messages postés 192 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 janvier 2013 22
1 janv. 2013 à 20:54
Bonjour et Bonne Année,

La réponse est double. L'accès à cjoint.com est ouvert à toutes personnes en possession du N° d'enregistrement de la demande d'envoi, càd en l'occurrence les personnes qui viennent sur CCM et qui ouvrent cette demande ici présente et qui ouvriront ton envoi. Autant dire tout le monde.

Mais tu dois aussi te dire que, premièrement, nous sommes tous anonymes ici; pas plus toi que moi, ni aucun autre, ne savons qui est le correspondant ni même où il se trouve.
Deuxièmement, encore faudrait-il qu'on comprenne quelque chose à la teneur des données qui peuvent figurer dans tes tableaux en question, à moins qu'il ne s'agissent de noms de personnes identifiables, et qu'on s'y intéresse tant soit peu.
Enfin troisièmement, il est évident que l'aide que tu demandes est purement technique pour l'écriture d'un code d'automatisation: aussi les personnes prêtes à t'offrir celle-là n'ont absolument pas besoin de données vraies. Il suffit donc que tu prépares une "maquette" avec n'importe quelles données, tant pour les dénominations des produits, des devises, et je ne sais quoi, que pour les chiffres qui s'y rapportent. Toutes ces données peuvent être, sans inconvénient, complètement fantaisistes quant à ton activité réelle, et surtout peuvent n'être qu'un échantillon; la seule exigence étant qu'elles soient assez suffisantes pour résoudre convenablement la question posée.

Tout cela te laisse malgré tout une très importante marge de manoeuvre qui peut t'aider à choisir ce que tu veux faire.
Cordialement.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
1 janv. 2013 à 22:46
re bonsoir et bonne année à vous, meilleur voeux!

J'ai essayé de créer un document avec un petit échantillon et des données voici le lien https://www.cjoint.com/?0AbwmOSGtT9 . J'aimerais créer une petite macro (une fois que mon tableau croisé dynamique avec 8 colonnes: types de produit, objet, devise, entité, septembre,variation septembre octobre, octobre, variation octobre, novembre, novembre etc est créer) me permettant d'automatiser la mise à jour de mon tableau croisé dynamique quand ma base de données est mise à jour( c'est à dire au fur à mesure que j'ai les données de décembre,janvier, février etc la petite macro que j'aurai créer me permettrait d'actualiser automatiquement mon tableau croisé dynamique tout en tenant compte des nouvelles données sur les mois à venir ( décembre, janvier, février, mars, etc) que j'aurai rajouté sur ma base de données de telles sorte qu'on actualisant mon TCD qu'en plus des données déjà existantes( variation septembre oct... etc) que j'ai les nouvelles données c'est à dire variation novembre décembre, décembre, variation décembre janvier, janvier etc...) Avez vous svp une idée de comment faire ma macro? Merci d'avance pour votre réponse.
0
Tessel75 Messages postés 192 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 janvier 2013 22
2 janv. 2013 à 01:24
Re-Bonsoir,
J'ai bien reçu le tableau. Après l'avoir examiné, je comprends que la difficulté qui se pose est que ce n'est pas la quantité des données qui augmente à l'intérieur d'un cadre fixe, ce à quoi répondaient tes précédents interlocuteurs, mais bien leur teneur ou leur nature, càd les items eux-même, les classes des objets à prendre en compte dans le TCD. En fait, ton tableau est déjà un tableau croisé; c'est ce qui entraine la difficulté de son traitement.
Avec ces hypothèses, j'avoue mon incompétence quant à l'élaboration d'une macro établissant des TCD variables selon les mois de l'année. D'autres sont bien plus savant.

Mais il faut savoir déjouer les pièges.
Le plus simple serait que tu construises un tableau de relevés des données sur 14 ou 15 mois qui se remplirait au fur et à mesure. Au début, les 10/12 èmes des lignes et colonnes seraient vides, mais ton tableau serait fixe pour le type des données de la base de calcul.

Une autre solution serait que tu puisse faire une extraction des données mensuelles, que tu puisses les intégrer dans un tableau intermédiaire construit de telle sorte que données d'un mois et les variations d'un mois à l'autre ne soient pas considérées comme celles de catégories supplémentaires comme de simples données, càd que tu aurais par exemple un champs, ou une série de champs "mois" et "variations" dont les contenus seraient les mois et période bi-mensuelles.

Ou bien encore, il parait nécessaire de reprendre complètement la construction de ton tableau initial pour qu'il permette la construction automatique d'un TCD. Dans son état actuel, je ne saurais pas le faire.

Bonne journée tout de même.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
2 janv. 2013 à 16:07
merci d'avoir pris le temps de me répondre.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
19 déc. 2012 à 22:22
bonjour,

J'ai bien lu ton pavé, "saisi au km", mais je n'ai pas retenu grand chose et pour relire ce n'est pas facile !

Si ta base est bien conçue, ton tableau dynamique se met à jour avec une actualisation (éventuellement automatique par macro), alors pourquoi vouloir compliquer ?
-1
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
20 déc. 2012 à 10:48
ouiiii mais lorsque j'actualise ma base de données avec les données de decembre, et je fais tournée macro, le TCD qui se crée ne tient pas compte des nouvelles données de decembre alors que je voudrais une macro qui me permette de créer un TCD automatiquement tout en tenant compte de mes données nouvelles
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
20 déc. 2012 à 18:01
Tu n'as pas besoin d'une macro pour qu'il tienne compte de tes nouvelles données, il suffit de créer ton TCD avec une plage nommée dynamique :

nommer Tablo (par exemple) 
=DECALER($A$1;;;NBVAL($A:$A);NBVAL($1:$1))

puis créer ton TCD avec la plage Tablo : si tu rajoutes des lignes ou des colonnes elles seront actualisées.
0
jacinthelafleur Messages postés 88 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 7 octobre 2013 1
26 déc. 2012 à 10:06
je ne comprend pas trop désolé je suis débutante!!!! et j'ai vraiment besoin d'aide. décris moi pas à pas la procédure que ce que je dois suivre. merci d'avance
0
LOL la blonde...
0