Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 02/07/2008, 17h13   #1 (permalink)
Membre habitué
 
Avatar de psykodumarteau
 
Date d'inscription: avril 2008
Localisation: Tarbes
Âge: 25
Messages: 147
Par défaut Problème de TCD : ChildItems ne fonctionne pas

Bonjour,

J'essaie de créer une fonction qui ne permet de vérifier s'il existe une valeur dans un champ fils pour une valeur d'un champ père. Je sais c'est pas clair, je m'explique. J'ai un tableau croisé qui a champs colonnes "Année" et "semaine" et je veux vérifier s'il existe la semaine X pour l'année Y dans mon tableau. Voici mon code :

Code :
 
Public Function ItemOfPivotTable(ByRef pivtable As PivotTable, ByVal nompivfield As String, ByVal valpar As String, Optional valchi As String = "") As Boolean
    Dim pivfield As PivotField
    Dim pivitem As PivotItem
    Dim tfparent As Boolean
    Dim tfchield As Boolean
    
    'Initialisation
    tfparent = False
    tfchield = True
    ItemOfPivotTable = False
    
    'Selection du champ à controler
    Set pivfield = pivtable.PivotFields(nompivfield)
    'Controler la present de la valeur dans le champ père
    For Each pivitem In pivfield.PivotItems
        If pivitem.Name = valpar Then tfparent = True
    Next
   
    If Not valchi = "" and tfparent Then
        tfchield = False
        'C'est cette boucle qui ne fonctionne pas
        For Each pivitem In pivfield.PivotItems(valpar).ChildItems          
            If pivitem.Name = valchi Then tfchield = True
        Next
    End If
    
    Set pivfield = Nothing
    Set pivitem = Nothing
    ItemOfPivotTable = tfparent And tfchield
End Function
 
Le probleme se trouve dans la seconde boucle for each. Elle ne fonctionne pas, j'ai mis un msgbox dans la boucle mais il n'est pas exécute. J'ai fais d'autres tests et j'en ai conclu que le "ChieldItems" ne fonctionne pas. Quelqu'un sait-il comment fonctionne "ChieldItems" ou une autre solution pour effectuer ce contrôle?

Cordialement
__________________
Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

Dernière modification par psykodumarteau ; 03/07/2008 à 09h23
psykodumarteau est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2008, 09h22   #2 (permalink)
Membre habitué
 
Avatar de psykodumarteau
 
Date d'inscription: avril 2008
Localisation: Tarbes
Âge: 25
Messages: 147
Par défaut

Bonjour,

j'essaie de rajouter le code suivant avant la bloque qui ne fonctionne pas.

Code :
Set pivitem = pivfield.PivotItems(valpar)
MsgBox pivitem.ChildItems(1).Name
puis

Code :
Set pivitem = pivfield.PivotItems(valpar)
         Set pivitems = pivitem.ChildItems
         MsgBox pivitems.Item(1)
L'erreur suivant apparait : erreur d'execution '1004' : Impossible de lire la propriété childitems de la classe PivotItem.

Je ne comprend pas pourquoi il n'arrive pas à lire cette propriété (la source de mon tableau croisé dynamique n'est pas une source OLAP)

Cordialement
__________________
Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]
psykodumarteau est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 18h48.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations