Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2876 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Bug sur Tableau croisy dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bug sur Tableau croisy dynamique

n°1891618
nathanc
Posté le 05-06-2009 à 12:13:10  profilanswer
 

Bonjour,
J'ai un gros soucis sur le TCD.
Je veux afficher juste une entreprise sur une colonne, et juste une année sur une autre. Ensuite, je veux récupérer ces informations.
Malheureusement, un bug s'ensuit :"impossible de définir l'objet visible de la classe pivotitem"
 
 
Voici mon code :
_______________________________________________________________________________________________
Dim monPivIt As Object, ST, année
 
Application.ScreenUpdating = False
 
 
If UserForm6.ComboBox1.Value = "" Or UserForm6.ComboBox2.Value = "" Then
MsgBox "Veuillez remplir toutes les listes déroulantes !", vbExclamation
Else
 
ST = UserForm6.ComboBox1.Value
année = UserForm6.ComboBox2.Value
 
Feuil2.Range("D4" ).Value = UserForm6.ComboBox1.Value
 
Feuil2.Range("D9" ).Value = UserForm6.ComboBox2.Value
 
Feuil3.Select
 
 
 
'_______________________________________________________________________________
 
 
'_______________________________________________________________________________
'on ne prend que le ST qui nous intéresse
    With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("entreprise" _
        )
         
On Error Resume Next
For Each monPivIt In .PivotItems
monPivIt.Visible = True
Next
On Error Resume Next
For Each monPivIt In .PivotItems
If monPivIt.Name <> ST Then monPivIt.Visible = False
Next
 
    End With
     
     
     
     
'_________________________________________________________________________________
 
 
'on ne prend que l' année qui nous intéresse
 
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
        "année PC" )
 
On Error Resume Next
.PivotItems("2008" ).Visible = True
.PivotItems("2007" ).Visible = True
.PivotItems("2009" ).Visible = True
 
On Error Resume Next
For Each monPivIt In .PivotItems
If monPivIt.Name <> année Then monPivIt.Visible = False
Next
 
    End With
'_________________________________________________________________________________
 
 
'_______________________________________________________________________________
'On range dans l'ordre décroissant !
       
      ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Lot" ). _
        AutoSort xlDescending, "Somme de traité"
'_________________________________________________________________________________
 
 
Unload UserForm6
 
Feuil2.Select
 
 
 
 
 
End If
 
 
 
---------------------------------
 
je vous remercie de m'aider

mood
Publicité
Posté le 05-06-2009 à 12:13:10  profilanswer
 

n°1895175
produvba
Posté le 15-06-2009 à 14:33:31  profilanswer
 

Si je comprends bien ton code, tu as un tableau dynamique avec en ligne des "entreprises", en colonne des "années", et tu veux sélectionner la valeur pour 1 entreprise et 1 année bien précises...
Dans ce cas le mieux est de ne pas utiliser de tableau croisé dynamique.  
Deux moyens de s'en sortir: une requête spécifique avec paramètre (du style SELECT sum(champ) FROM table WHERE ([Entreprise]=nom de l'entreprise) and ([Année]=année)...
Ou bien utiliser directement une fonction de la série DSUM ou DLOOKUP...
Ce sera beaucoup plus simple (et plus rapide en plus)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Bug sur Tableau croisy dynamique

 

Sujets relatifs
Table dynamique JPA/Hibernate[PERL] Tableau de hash
Tableau qui ne s'affiche pasAlgorithme tableau v.négatifs à gauche et positifs à droite
[javascript|jquery] affichage dynamique d'une image ds un divhierarchie polymorphique , instanciation dynamique sans if
Création dynamique Zone de Texte ACCESS 2007Boucle de DELETE en fonction d'un SELECT
[javascript] variable dynamique ?Recherche dans tableau multi dimension Excel
Plus de sujets relatifs à : Bug sur Tableau croisy dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR