VBA tableau croisé: erreur pivotitem

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
 

Hervé

XLDnaute Barbatruc
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
 
D

Didier

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 277
Messages
2 086 715
Membres
103 378
dernier inscrit
phdrouart