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 :

[VBA-E] Tableau croisé dynammique et Init


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut [VBA-E] Tableau croisé dynammique et Init
    Bonjour, j'ai plusieurs TCD qui sont crées sur des feuilles associés à ma macro Excel. (un TCD par feuille)
    Il se passe la chose suivante : si j'execute le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = "CABLES TRANSPOSES CUIVRE"
    et qu'il n'existe pas de CABLES TRANSPOSES CUIVRE j'ai une erreur.
    Par contre si auparavant j'ai lancé le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = "SYSTEMES DURS"
    et qu'il n'y a pas d'erreurs alors cette fois le premier code (celui du haut de la page) m'affiche des valeurs à 0 mais ne genere pas d'erreurs.
    Je suis en outils/option/General/=>arret sur les modules de classe.
    Est ce qu'il y a un autre parametre à modifier dans mon tcd pour éviter la survenue d'une erreur ?
    Est ce qu'il est possible de faire un ActiveSheet.PivotTables qui marche à tous les coups pour éviter le probleme ?
    D'avance merci de vos réponses

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut Re: Tableau croisé dynammique et Init
    Citation Envoyé par comme de bien entendu
    Bonjour, j'ai plusieurs TCD qui sont crées sur des feuilles associés à ma macro Excel. (un TCD par feuille)
    Il se passe la chose suivante : si j'execute le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = "CABLES TRANSPOSES CUIVRE"
    et qu'il n'existe pas de CABLES TRANSPOSES CUIVRE j'ai une erreur.
    Par contre si auparavant j'ai lancé le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = "SYSTEMES DURS"
    et qu'il n'y a pas d'erreurs alors cette fois le premier code (celui du haut de la page) m'affiche des valeurs à 0 mais ne genere pas d'erreurs.
    Je suis en outils/option/General/=>arret sur les modules de classe.
    Est ce qu'il y a un autre parametre à modifier dans mon tcd pour éviter la survenue d'une erreur ?
    Est ce qu'il est possible de faire un ActiveSheet.PivotTables qui marche à tous les coups pour éviter le probleme ?
    D'avance merci de vos réponses
    relis tes anciens Posts... je crois que tu as déjà posé la question !!!

    ... et je t'ai donné une solution que tu ne semble pas avoir exploitée...
    ( repasser par "(Tous)" )...

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    sur la page d'acceuil du forum en haut à droite tu as

    Voir ces messages ..

    je commence toujours par là lorsque je me connecte au forum..


    sinon pour les autres ... je parle de ma deuxiéme réponse sur le sujet :

    http://www.developpez.net/forums/vie...asc&highlight=

  4. #4
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    J'avais déja tenté la manip avec le (Tous), je viens de réessayer mais
    ca ne marche pas plus.
    La solution serait peut être de vérifier que les données sont présentes
    avant de lancer le tableau.
    Peut être en faisant un Find, mais si il y a une commande plus "ramassée"
    je suis preneur.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu as du mal "tenter la manip avec tous ..."

    chez moi ça fonctionne :

    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
    22
    23
    24
    25
    26
     
    '
    ' Fonction ChangePage .. : à inclure dans ton projet
    ' retourne true si page existe ....
    '
    Function ChangePage(stPage As String) As Boolean
    'se positionne d'abords sur Tous
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = "(tous)"
     
    On Error GoTo ErreurPage
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Description Famille").CurrentPage = stPage
    ChangePage = True
    Exit Function
    ErreurPage:
     ChangePage = False
     Debug.Print "Page :" & stPage & " Introuvable"
    End Function
    '
    '  Procedure de test de ma fonction ... appellé par un bouton sur ma feuille..
    '  ... avec en H6 le nom de la Page a afficher ... et l'on retrouve le résultat en I6
    Sub Test()
     Range("I6") = ChangePage(Range("h6").Value)
     
    End Sub

Discussions similaires

  1. VBA - Filtrer tableau croisé dynamique
    Par germ75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2011, 18h07
  2. Macro VBA et tableau croisé dynamique
    Par Needz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/07/2010, 14h30
  3. VBA et tableau croisé dynamique = tutoriel ?
    Par Caps corp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/09/2008, 11h52
  4. VBA - EXCEL (tableau croisé dynamique)
    Par cilv1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2007, 12h41
  5. Tableau croisé dynammique en VB
    Par comme de bien entendu dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/11/2005, 14h36

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