Voila j'ai un fichier excel qui conteient une feuille de données et d'autres feuilles avec des TCD qui proviennent de ces données....
Je voudrais créer un bouton qui permettent d'actualiser tous les TCD en meme temps..
Je n'arrive pas à créer cette macro...
Si vous pouviez m'aider
Voila j'avais pensé a un truc comme ca mais les données dans les TCD ne sont pas mises a jour
en fait ca marche jusqu'a ce que je mette le fichier en partage...
Et la ca ne marche plus j'ai un message d'erreur qui apparait:
C'et une fenetre contenant la croix d'arret avec comme explication '400'
Comment puis je modifier le partage ou la macro pour que ce message d'erreur n'apparaisse plus?
Merci d'avance...
groussel
Messages postés1Date d'inscriptionmercredi 29 février 2012StatutMembreDernière intervention29 février 2012 29 févr. 2012 à 11:52
Bonjour,
La mise à jour d'un tableau croisé dynamique (TCD) n'est pas possible lorsque le "Partage" a été activé. D'ailleurs, vous vous en rendrez compte en tentant de le faire manuellement et non par code VBA. la ligne "Actualiser" est désactivée dans le menu contextuel.
Il est vrai que le message d'erreur n'est pas des plus clairs...
La solution que j'envisagerais est la suivante :
Avoir un autre fichier qui ne serait pas partagé contenant le TCD dont la mise à jour serait assurée par une macro exécutée depuis le fichier partagé.
Pour récupérer le résultat du TCD, il suffit ensuite d'utiliser des formules de liaison.
En espérant ne pas arriver trop tard... mais ça sert toujours :)
j'ai à peu près le même problème mais les solutions rpécédentes ne marchent pas.
En fait je cherche à faire une macro dans laquelle j'ai besoin d'actualiser à chaque tour de boucle (je change la valeur d'un menu déroulant et je veux actualiser les données correspondantes à cette nouvelle valeur choisie).
Voici mon code :
Dim i As Integer
For i = 3 To 200
Sheets("centre").Select
Cells(i, 1).Select
Selection.Copy
Sheets("vérif nature").Select
Cells(1, 10).Select
ActiveSheet.Paste
ActiveSheet.Paste
Application.CutCopyMode = False