Mise à jour de plusieurs TCD en une seule fois

Bonjour à tous,

Merci à ceux qui prendront le temps de me répondre.

Alors voila, j'ai un problème avec excel car j'ai un fichier avec plusieurs TCD et je suis toujours obligé de mettre à jour les TCD un à un et ca me prends beaucoup de temps.

Malheureusement je ne peux pas joindre le fichier car il est confidentiel, mais je vais essayer de vous expliquer mon soucis.

J'ai deux fichier excel, un avec une base de données dont je met à jour une fois par semaine en rajoutant des lignes. Je vais prendre les infos sur un site mais sous version excel et je les colle à la suite du fichier. ce qui fait que ma base ne change que au niveau des lignes qui se rajoutent.

Un deuxième fichier, avec plusieurs TCD me permettant de renseigner un tableau de bord étant dans ce même fichier.

Du coup lorsque je met à jour mes TCD, je vais changer la source et rajouter de ma sélection les données en plus de ma base de données.

Vu que la source change, lorsque je fais "actualiser tout" ca ne marche pas car il y a les lignes en plus à prendre en compte.

Du coup j'aimerai savoir si il était possible avec excel ou encore VBA, bien que je ne m'y connaisse pas du tout dans le domaine, pour que lorsque je met à jour le premier tcd, les autres se mettent aussi automatiquement à jour en prenant en compte les nouvelles données rajouté dans ma base?

Désolé du texte trop long mais je voulais qu'on me comprenne bien.

Merci à vous de pouvoir m'aider car ca m prends beaucoup de temps et surtout souvent des petites erreurs lorsque j'oubli d'actualiser un des tcd.

A bientot

Bonjour Abdallah,

Alors la seule chose où je peux t'aider c'est te donner la ligne de code vba pour rafraîchir un TCD :

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

Vu que après ton fichier est confidentiel il est difficile de te donner les informations qui réglerait ton problème entièrement.

Je pense que l'idéal c'est d'avoir un bouton de rafraîchissement ou bien lorsque tu effectue une action en particulier, changer la plage de donnée source de chaque TCD et lancer le rafraîchissement des TCD. Tu as plusieurs solutions pour le rafraîchissement aussi tu peux faire une boucle et avoir très peu de ligne de code si les TCD ont un nom de code qui se suivent (1,2,3,4,5 etc..) mais étant donner que tu ne t'y connais pas ça va être compliqué

Sinon je t'aurais bien ajouté le code pour le changement de source mais j'ai peur que ça t'embrouille encore plus :

    ActiveSheet.PivotTables("Tableau croisé dynamique1").ChangePivotCache _
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "C:\Users\[utilisateur]\Desktop\[Nouveau Feuille de calcul Microsoft Excel.xlsx]Feuil1!R1C2:R9C3" _
        , Version:=xlPivotTableVersion14)

Si tu fais une copie de ton fichier en enlevant tout ce qui est sensible mais sans changer les TCD et le format de ton tableau source, il est possible de te créer la macro que tu n'aura plus qu'à copier dans ton fichier original afin de créer un bouton d'actualisation. Si ce n'est toujours pas possible comme ça un fichier exemple au moins avec la mise en forme de ton tableau source + où se situe tes TCD (avec des données fakes ou autres)

Si ce n'est toujours pas possible alors personnellement je ne pourrais pas t'aider plus, mais peut-être que quelqu'un d'autre qui passera par là pourra !

Bon courage

Bonjour

Depuis 2003 et surtout 2007, Microsoft a mis à notre disposition les tableaux : il suffit que tes zones de données soient mises sous forme de tableaux et que les TCD soit construits sur le tableau et non la plage pour que tout ajout de ligne y soit automatiquement répercuté.

Cela n'a pas de sens de modifier la source des TCD à chaque fois. Avant les tableaux on créait déjà des plages nommées à partir de la fonction DECALER pour l'éviter. Ceux qui ne veulent pas utiliser les tableaux peuvent toujours le faire.

Pour actualiser les TCD utilisant une même source, il suffit d'en actualiser un.

Pour plusieurs sources, on peut utiliser le bouton Actualiser Tout.

Donc VBA pas vraiment utile... juste de la méthodologie

Bonjour,

Tout dabord merci a tout les deux d'avoir pris la peine de me répondre.

@Avie merci pour tes formules. effectivement je ne m'y connait pas du tout et déjà la tout me semble grave compliqué car je comprends a peine ce que tu as voulu dire sur la formule ca montre a quel point je suis loin. De plus, je peux vraiment pas donner en exemple mon fichier ou un qui y ressemble à cause de sa confidentialité.

@78chris Merci pour l'astuce je ne savais pas du tout j'ai essayé sur un autre fiché et à priori ca marche. le soucis reste le fait de refaire tous les TCD. Je vois ca la semaine prochaine de toute manière. J'espere qu'en changeant la base une fois sur tous les TCD, le mois d'après je n'aurais pas à faire la meme chose.

Merci encore à vous

Bonjour

Ne pas refaire tous les TCD mais changer la source une dernière fois.

Un peu de lecture sur les tableaux http://www.excel-formations.fr/Trucs_astuces/Tableaux01.php

Rechercher des sujets similaires à "mise jour tcd seule fois"