|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
Bnjour tout le monde,
Je travaille avec un fichier dans lequel j'ai une vingtaine de de TCD. Chaque mois, ma source de données change et je dois donc faire un update des TCD une par une. Je me doute qu'il y a moyen de faire cela à l'aide d'une macro, mais je ne sais absolument pas coder cela. Pourriez-vous m'aider svp?? (et me faire gagner des heures entières chaque mois Merci mille fois, Cordialement Jenna |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Le problème, c'est que ça dépend de l'emplacement de la plage de données. Pour mes tests, j'ai fait un exemple simple avec des données en colonne A et B de Feuil1. Copie cette macro dans le module de la feuille contenant les données source. J'ai fait les tests avec XL2010, aussi il faudra peut-être changer "xlPivotTableVersion14" en "xlPivotTableVersion12" : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
Bonjour Daniel,
J'ai essayé ton code, il a partiellement fonctionné, ça a changé les deux premières colonnes dans mon TCD, (tout le reste était blanc vu que ça n'a pas tenu compte des autres colonnes je suppose). Malheureusement excel a planté et depuis, j'ai beau essayer de nouveau maintenant plus moyen de faire fonctionner. Voici un fichier excel, un exemple très simplifié de ce que j'utilise en général, çàd: - Une feuille de donnée que j'actualise chaque avec un nombre variable de lignes en plus (le nombre de colonne restant toujours le même) - Plusieurs autres feuilles contenant chacune plusieurs TCD. Les feuilles que j'appelle "current 1 et 2" sont les feuilles avant que je n'ajoute mes données. Les feuilles after: sont en fait celle que je voudrais avoir automatiquement. C'est à dire, lorsque je rajoute les données en gras ( c'est à dire mes données mensuelles qui ne sont pas toujours un nombre fixe de lignes), j'aimerais que mes TCD changent automatiquement pour me donner ce résultat sans que je ne doive à chaque fois aller sur chaque TCD, changer la source de donnés pour chacun d'eux, etc... Est-ce que je suis assez claire dans mes explications?? Merci de ton aide, Bien à toi, Jenna |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Je ne suis pas sûr de bien comprendre :
Citation:
__________________
Cordialement. Daniel Citation:
|
||
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
J'ai mis les tables after 1 et 2 juste pour donner un aperçu de ce que je voulais, mais en temps normal, mon fichier se composerait des data, current 1 et current 2.
Citation:
Citation:
Lorsque je change ma feuille data en faisant une mise à jour des données, j'ajoute des lignes, mais le nombre de colonnes reste le même. Et les TCD se baseront toutes sur la nouvelle plage de donnée. Est-ce plus claire? |
||
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Mets la macro suivante dans le module de la feuille "data" :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
Je vais essayer cela merci
Encore juste une petite question, si jamais j'ai plus de colonnes il suffit de changer le '6'? Bien à toi, Jenna |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Exact.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
Merci mille fois Daniel. Au fait, encore une petite question, (hum oui j'ai l'art de faire des fichiers excel compliqués) Si dans mon fichier, j'ai des TCD qui se bases sur d'autres sources de données que la feuille data, mais dans le même fichier. Je suppose que cela posera problème pour la macro.
Y a t il un moyen simple de résoudre cela? Encore merci merci merci!! Jenna |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Il faut que je connaisse le nom des feuilles contenant les datas.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#11 | |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 30 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Je vais te mettre à contribution, car ça devient complexe. Donc tu vas définir pour chaque source de données une plage dynamique. Avec ton exemple, la plage de la feuille "data sera définie par le nom :
Code :
=DECALER('data'!$A$1:$F$1;;;NBVAL('data'!$A:$A)) Une fois que tu as défini les plages sources, tu cliques dans un tableau, sur l'onglet "Options", sur "changer la source de données" et tu remplaces la plage par le nom que tu viens de définir. Ces plages sont dites dynamiques car elles se dimensionnent selon que tu ajoutes ou retranches des données. Dans le module "thisworkbook", ajoute : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bizarrement, ta dernière réponse n'apparaît pas. Peux-tu mettre ton classeur en pièce jointe ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com