IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vérifier si une valeur est dans un tableau croisé dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut Vérifier si une valeur est dans un tableau croisé dynamique
    Bonjour,

    je lis le contenu d'un tableau croisé dynamique via le code VBA suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TCD_CHARGE").PivotTables("TCD_CHARGE").GetPivotData("Somme de CHARGE", "ANNEE_CHARGE", CStr(Year(Date)), "SEMAINE_CHARGE", CStr(TrouverNuméroSemaine(Date)), "ATELIER", atelier, "POSTE", poste)
    Le problème est que si la donnée correspondant aux critères n'existe pas le code ne marche pas (normal quoi). Je voudrai donc vérifier au préalable que la donnée existe.

    Quelqu'un sait-il comment faire?

    Cordialement

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Points : 177
    Points
    177
    Par défaut
    Salut
    t'as essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsError(TaFormule) then ActionSiCestBon
    J'ai pas testé mais c'est une idée qui me vient à l'esprit.
    Mél

  3. #3
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 18
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    normallement ça te donne une erreur avec un code donc une petite gestion d'erruer et le tour est joué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    on error goto GestionErreur
    '.. ton code 
     
     
     
    '***************   GESTION ERREURS    **************    
    GestionErreur:
     
    select case err
     
    case 13
    'code de gestion dans le cas d'une erreur 13
    case xx
    'code de gestion en cas d'erreur N°xx
     
    case else
    'code de gestin en cas d'autre code d'erreur
     
    end select
    ''***************  FIN GESTION ERREURS    **************

  4. #4
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Re,

    J'ai déjà une gestion des erreurs. En effet, certaines sont normales et je les prends en compte. Je voulais savoir s'il existe une méthode ou une propriété dans les tableau croisé qui permet de tester si un champ existe. Je n'aime pas utiliser la gestion des erreur pour réaliser des tests je trouve que ce n'est pas propre.

    je vais tester la méthode melouille56.

    Merci cordialement

  5. #5
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Re,

    j'ai testé la solution de melouille56 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Sub TestTCD()
        If Not IsError(Sheets("TCD_CHARGE").PivotTables("TCD_CHARGE").GetPivotData("Somme de CHARGE", "ANNEE_CHARGE", "2008", "SEMAINE_CHARGE", "26")) Then
            MsgBox "l'année semaine existe"
        Else
            MsgBox "l'année semaine existe pas"
        End If
    End Sub
    Et malheureusement, ça ne marche pas. j'obtiens le message d'erreur suivant :Erreur d'exécution 1004 : Erreur définie par l'application ou par l'objet.

    Existe-t-il une autre solution?

    Cordialement

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/11/2011, 21h17
  2. [XL-2007] Utilisation d'une fonction VBA dans un tableau croisé dynamique?
    Par Keketo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2011, 10h36
  3. [XL-2000] Insérer une colonne cumul dans un tableau croisé dynamique
    Par astridlet dans le forum Excel
    Réponses: 6
    Dernier message: 31/12/2010, 10h15
  4. [DATA] Vérifier si une valeur est dans une table sans PROC SQL
    Par Filippo dans le forum SAS Base
    Réponses: 5
    Dernier message: 02/12/2009, 11h05
  5. Comment tester qu'une valeur est dans un tableau ?
    Par Pierrot92320 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/04/2009, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo