VBA et Segment

Bonsoir à tous,

J'ai trouvé sur un post de ce forum une macro permettant de choisir un critère dans un segment relié à un TCD.

J'ai adapté celle-ci afin qu'elle me permette d'effectuer une action en boucle avec tout les critères disponibles. Cela fonctionne bien, mais lorsque je supprime ce segment et que j'en recréé un, un message d'erreur s'affiche au cours de la macro (le nom du segment est pourtant le même et cela ne marche pas que je créé le segment depuis le tcd ou depuis l'onglet insertion).

La macro ne semble donc plus reconnaitre mon segment et je n'arrive pas à en trouver la cause.

Je vous joins donc le fichier qui fonctionne et le fichier qui ne fonctionne plus (2).

Votre expertise me serait d'un grand aide merci par avance.

Bien cordialement.

Après avoir creusé un peu plus dans la recherche de la cause, il semblerait que le fichier ne fonctionne plus car j'ai recréé un tcd en ajoutant les données au modèle (ce que je fais toujours...). De ce fait la macro ne semble plus reconnaitre le segment.

Auriez vous des idées de solutions pour contourner ce problème ?

Merci.

Bien cordialement,

Bonjour,

il est beaucoup plus simple de garder le TCD construit manuellement, et de juste mettre à jour par macro la plage de source lorsqu'elle est actualisée.

Pourquoi se compliquer la vie à le reconstruire à chaque fois par macro ?

eric

Bonjour Eric,

Merci pour ce retour.

Pour information j'effectue un reporting régulier dont j'ai un tableau lié à un tcd avec "LIREDONNEETCD..." à chaque critères sélectionnés (environ 30) du segment s'effectue des calculs et je vais donc pour chaque critères effectuer une extraction des résultats des calculs par la boucle. l'utilité de la macro est donc plus nécéssaire ici mais lorsque les données sont liées au modèle de données le code ne fonctionne plus :/

Concernant la macro, que j'ai envoyé (macro1 sur le fichier), je n'ai peut être pas compris votre message, je ne vois pas où elle "recrée" un tcd à chaque fois.

Bien cordialement.

Bonjour,

je n'ai pas téléchargé tes fichiers, juste lu

il semblerait que le fichier ne fonctionne plus car j'ai recréé un tcd

.

eric

Bonjour

En mode debug il est facile de voir que l'objet segment issu du modèle de données n'a pas les mêmes propriétés que celles d'un segment classique

Par ailleurs on ne doit jamais ajouter une plage au modèle de données mais un tableau structuré...

Ici inutile de désélectionner les autres valeurs

le ligne

ActiveWorkbook.SlicerCaches("Segment_nom").VisibleSlicerItemsList(1) = "[Plage].[nom].&[" & KAM & "]"

suffit à changer de sélection dans le segment

Bonjour Chris,

Je n'avais pas vu ce message, merci en retard pour ce retour qui va m'aider.

Bien cordialement,

Rechercher des sujets similaires à "vba segment"