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 :

[E-03] Exploiter un tableau croisé dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut [E-03] Exploiter un tableau croisé dynamique
    Bonjour, j'ai plusieurs questions en ce qui concerne l'exploitation de tableaux croisés dynamiques.

    J'ai un tableau croisé dynamique dans lequel j'ai dans une colonne des équipements (machines) et dans l'autre le temps passé (temps d'intervention) sur chacune d'entre elle. Avec un bout de code vba, lors de la mise à jour du tableau croisé dynamique, je trie les temps par ordre décroissant, afin de voir les équipements sur lesquels on passe le plus de temps.

    1) Je voudrais que les 10 premiers équipements les plus pénalisants se mettent en couleur, mais je ne sais pas comment faire? Sachant que ce ne sont pas toujours les même, selon la période que l'on étudie, il faut donc que la mise en forme ne soit pas propre à un équipement, mais bien aux 10 premiers du TCD. Si un équipement au mois de janvier était dans les 10 premiers et donc était en couleur, si le mois suivant, il est en 12e position je ne veux plus qu'il soit en couleur.

    2) De la même manière, je voudrais pouvoir dans un autre tableau croisé dynamique faire de la mise en forme conditionnelle, c'est à dire mettre une ligne du TCD en couleur, si par exemple j'ai décidé (par code vba) que si un type d'intervention "X" apparaissait dans le TCD, je le mettait en jaune, si un autre type d'intervention "Y" apparaissait dans le TCD, je le mettais en Bleu... etc

    Parce que pour le moment j'ai mis par exemple le type d'intervention "X" en jaune, mais il se peut que selon la période étudié, celui ci n'apparaisse pas dans le TCD, et donc sur la prochaine période où il apparetra, il ne sera plus en jaune.

    Merci pour votre aide, j'espere avoir été clair.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,
    comme tu le dis toi-même, ceci est à faire par code VBA, comme s'il s'agissait de cellules normales.

    1) Tu repères la première ligne data de ton Pivot et tu traites les 10 lignes.

    2) Même principe mais tu testes le contenu de la cellule avant.

  3. #3
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    1) Tu repères la première ligne data de ton Pivot et tu traites les 10 lignes.
    Le soucis, c'est que sa ne fonctionne pas ce système. J'ai mis le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("B31:C39").Select
        With Selection.Interior
            .ColorIndex = 40
            .Pattern = xlSolid
        End With
    Sa me met bien mes 10 première ligne en couleur. Le soucis, ce qui se passe c'est que ce ne sont pas toujours les 10 mêmes qui sont en tête et du coup, celui qui a été dans les 10 premiers et qui le mois d'après qui n'y est plus reste en couleur.

    Il n'y a pas moyen au lieu de cibler des cellules, de dire met les 10 premières ligne de ce tableau croisé dynamique en couleur et le reste du tableau en blanc? Sachant que le nombre d'équipements peut varier d'un mois sur l'autre?

  4. #4
    Membre éprouvé Avatar de Brunodm13
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 129
    Par défaut
    Bonsoir,

    Cela peut peut-être te convenir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("B31:C39").Interior.ColorIndex = 40
    Range("B40:C" & (Range("B31").End(xlDown).Row)).Interior.ColorIndex = xlNone
    Tu relances ce bout de code à chaque fois que tu fais une actualisation de ton TCD.

    Bruno

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Re et merci pour l'aide, mais j'ai encore une petite question:

    Je n'ai pas encore testé le bout de code, mais dans mon TCD, la ligne où j'ai mon total, je veux quelle reste en grise, je fait comment sachant qu'elle n'est pas toujours placée au même endroit?

    Merci

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    la ligne où j'ai mon total, je veux quelle reste en grise, je fait comment sachant qu'elle n'est pas toujours placée au même endroit?
    Bonjour,

    tu cherches cette ligne en partant du bas (end(xlup)) et tu remontes jusqu'à elle en testant ce que tu veux (Total.....). NB : c'est la dernière ligne.

    Et puis tu la colories.

    Rebelotte, comme tou le reste à la prochaine génération du pivot.

    Bonne journée.

  7. #7
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Bon j'ai mis un fichier joint je pense que se sera beaucoup plus simple.

    Merci pour l'aide
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    je voyais bien quelque chose comme sa, mais sa ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Each cel In Range("b:b")
    If cel.Value = Dépannage Then
    Dépannage = ActiveCell.Offset(0, 1).Value
    Else
    End If
    Next

Discussions similaires

  1. Exploiter un tableau croisé dynamique
    Par onejock dans le forum Excel
    Réponses: 5
    Dernier message: 03/07/2008, 12h15
  2. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18
  3. Tableau croisé dynamique
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 26/12/2005, 18h05
  4. tableau Croisé Dynamique
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 10h36
  5. tableau croisé dynamique sous delphi, comment ?
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2005, 09h33

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