Mise à jour Données sources Tableau croisé dynamique avec une macro

Bonjour,

,out d'abord, mon niveau vba est faible.

Je suis en train de créer un rapport avec plusieurs onglets contenant divers tableau croisés dynamiques.

Je cherche à créer une macro me permettant de changer la source de donnée par un simple copié-collé à laquelle sont liées mes TCD puis enfin mettre à jour mes TCD.

Pour se faire, je veux au préalable annuler l'ensemble des données présente dans cette base de donnée avant de la remplacer par ma nouvelle base de donnée, tout cela au moyen d'une macro mais celle-ci beug, VBA me signifiant que je ne peux pas modifier cette plage car elle est liée à des TCD (cfr image ci-dessous) ... sachant que je remets à jour mes TCD plus tard dans ma macro.

PS: je n'ai ce souci que dans la macro, pas que je fais toute la manip manuellement sur excel, d'ailleurs, comme vous l'aurez constaté, cette macro n'est qu'un enregistrement de mes manipulations.

Connaitriez-vous un moyen de contourner ce problème?

D'avance je vous remercie.

image

Bonjour

Cordialement

Edit : vous pouvez aussi définir un nom à la plage de données pour le TCD. Si modification dans la plage vous modifiez la plage et vous lui attribuer le même nom.

Bonjour, Les TCD travail avec des entêtes qui ne peuvent être modifiés.

Donc si vous souhaitez supprimer un import précédent pour remplacer par un nouvel import :

Vous devez utiliser la fonction "ClearContents" uniquement sur les lignes aprés les titres.

Comme Dan le signal sans fichier difficile d'être plus précis sur la selection à faire sans fichier.

à la lecture de votre code je doute de vos sélection : Range("A6:Y6") çà c'est un bout de ligne.

Merci beaucoup pour vos réponses,

dans ce fichier je remplace un fichier par un autre fichier contenant exactement les mêmes entêtes et lorsque je fait la manip sans macro je n'ai donc aucun souci mais je vais tout de même essayer de faire ma macro sans modifier les entêtes ... cela peut-être mon problème dans VBA.

Dans mon fichier je sélectionne les colonnes allant de A à Y puis je fais un ctrl shift flèche du bas pour récupérer l'ensemble de ma base de donnée.

C'est la ligne que l'on trouve sous le range("A6:Y6").

Dans mon fichier, le nombre de colonne sera toujours identique, c'est le nombre de ligne qui changent.

Je fait donc le test de ne pas prendre la première ligne et reviens pour vous dire (un peu plus tard ce soir :)).

Merci.

Bonjour,

tout d'abord, merci pour votre aide.

J'ai trouvé le problème.

Le nom de la feuille dans laquelle il fallait supprimer les anciennes données n'était pas renseignée.

Ayant utilisé l'enregistreur de macro basique, ma macro commençait sur une feuille avec marqué "ActiveWorksheet" ... donc forcément si entre temps j'avais sélectionné une autre feuille VBA m'indiquait que mon action "Clearcontent" allait supprimer des choses non voulues comme un TCD.

J'ai donc remplacé Activeworksheet par la feuille qui allait bien avec Sheet(" ").select ...

Cordialement.

Bonjour

Bonne journée

Cordialement

Rechercher des sujets similaires à "mise jour donnees sources tableau croise dynamique macro"