VBA tableau croisé: erreur pivotitem

  • Initiateur de la discussion Initiateur de la discussion Didier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Didier

Guest
Bonjour j'ai un bug avec une de mes macros et j'arrive pas à comprenre pourquoi :angry:
J'ai trois feuilles dans mon classeur.
La première contient un tableau de données
La seconde contient trois labels qui quand on clique dessus renvoie vers la troisième feuille qui contient mon tableau croisé dynamique.
Suivant le lable (représente un hôpital) sur lequel on clique le tableau affiche les informations en rapprort avec le label cliqué.
Juste que là ca marche.
Voilà mon problème:
L'utilisateur clique sur un label par exemple label1 (=hôpital A) le tableau s'affiche, avec les données pour l'hôpital A. L'utilisateur à partir du tableau croisé dynamique peut très bien décidé d'afficher d'autres hôpitaux (à fin de faire des comparaisons) en cliquant sur l'en tête 'Institution'de la colonne du tableau croisé et en cochant les hôpitaux désirés. A partir de là si l'utilisateur décoche l'hôpital sélectionné à la base au moyen du label (dans ce cas ci hôpital A), qu'il retourne à la deuième feuille et qu'il clique sur le label2, le programme plante tandis que si il reclique sur le label1 ca marche!!!

Au cas où vous auriez pas tout compris.


Merci d'avance à celui qui pourra m'expliquer ce mystère
 
Bonjour

Une proposition, rajouter un test :

Sub Macro1(a As String)
Dim f As Boolean
Dim i As Byte
Dim x As PivotTable
Dim nombre As Byte


Set x = Worksheets('PDM').PivotTables('Tableau croisé dynamique2')
   
With x.PivotFields('INSTITUTION')
        nombre = .PivotItems.Count
        .PivotItems(a).Visible =
True
        .PivotItems(a).Position = 1
       
For i = 1 To nombre
           
If .PivotItems(i) <> .PivotItems(a) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .PivotItems(i).Visible =
False
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp;
End With
ActiveWorkbook.Sheets('PDM').Select
End Sub


Salut
 
Merci ca a l'air de bien marcher. Je vais le mettre entre les mains d'utilisateur sans pitié 🙂
J'étais plus orienté vers le débogage et la source de l'erreur que vers un code alternatif. Mais j'ai l'impression que parfois faut pas trop cherché à comprendre et vaut mieux essayer une autre méthode
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

E
Réponses
9
Affichages
2 K
elisagssrd
E
D
Réponses
6
Affichages
1 K
Dadou99
D
I
Réponses
0
Affichages
12 K
infogeo
I
A
Réponses
0
Affichages
3 K
AurelieGuillon
A
L
Réponses
5
Affichages
2 K
L
T
Réponses
13
Affichages
11 K
T
I
Réponses
11
Affichages
5 K
Ibsonsix
I
K
Réponses
5
Affichages
2 K
kenavo
K
T
Réponses
1
Affichages
7 K
Retour