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 :

Mise en forme graphique selon evenements [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut Mise en forme graphique selon evenements
    Bonjour à tous,

    J'ai un graph croisé dynamique (incorporé) généré par macro sous forme d'histogramme + une série en courbe. A chaque fois que je bouge mon tableau croisé dynamique cette mise en forme passe à la trappe. J'aimerais donc que cette mise en forme soit rétablie à chaque fois que le graph est recalculé.
    J'ai bien essayer de comprendre avec le tuto sur les évènements mais j'arrive pas à faire réagir mon graphique aux évènements car je m'y perds avec les histoires de modules de classe, la procédure RetourneDescriptionID et tout ça... en gros je comprends rien !!!

    J'aimerais également que lorsque l'on pointe sur une série elle affiche le texte d'une cellule (située sur une autre feuille) donc je suppose que pour cela aussi il faut passer par l'évènement CHART_MOUSEMOVE.

    Si une âme charitable pouvait m'expliquer (de préférence simplement) comment faire réagir mon graphique aux évènements Calculate et Mousemove ce serait sympa !
    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Je viens de trouver ce complément d'information sur les procédures évenementielles :

    http://xcell05.free.fr/pages/prog/evenements.htm

    Mais il n'est pas question de module de classe... je vais essayer pour voir et je donne des news (même si ça n'a pas l'air d'intéresser grand monde à part moi ... ça pourra toujours dépanner un qqun un jour... ou pas).

  3. #3
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Voilà ce que j'ai fait (sans succès):

    Dans le module ThisWorkbook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub Workbook_open
    Set Worksheets("TCD").graph = Worksheets("TCD").ChartObjects(1)
    end sub
    Dans le module de la feuille TCD:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public WithEvents Graph as chart
     
    Private sub Graph_Calculate()
    Worksheets("TCD").Graph.SeriesCollection.Series("Total général").ChartType = xlLine
    End sub
    Je ne sais pas pourquoi mais ça ne fait rien du tout. Je précise que le graph se reconstruit à chaque fois mais qu'il est tout seul sur la feuille donc l'index pour le désigner devrait être le bon.
    Bref je commence a ne plus vraiment savoir quoi faire.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    En fait en reprenant le cours de SilkyRoad sur les évènements dans les graphiques j'ai réussi à avoir ce que je voulais... pendant 2 mn

    Je pense que le problème vient de la façon de nommer le graphique. Voici mon code:
    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
    'Remet la série "Total général" sous forme de courbe rouge après le calcul du graph
     
    Private Sub Graph_Calculate()
    Dim i As Integer
    For Each Graph In ChartObjects
    Worksheets("TCD").ChartObjects(1).Activate
    Worksheets("TCD").ChartObjects(1).SeriesCollection("Total général").ChartType = xlLine
    With ActiveChart.SeriesCollection("Total général").Select.Border
            .ColorIndex = 3
            .Weight = xlThick
            .LineStyle = xlContinuous
        End With
        With Selection
            .MarkerBackgroundColorIndex = xlNone
            .MarkerForegroundColorIndex = xlNone
            .MarkerStyle = xlNone
            .Smooth = True
            .MarkerSize = 5
            .Shadow = False
        End With
    Next i
    End Sub
    Comme le graphique est reconstruit à chaque éxécution de la macro, son index doit changer et je pense que son nom aussi.
    Cependant comme il fait partie d'une classe je suppose qu'il doit exister un moyen de le désigner ou alors de faire une boucle sur l'index jusqu'à trouver le bon.
    Qqun aurait-il une idée ?

  5. #5
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    on peut dire que j'ai résolu le problème, j'ai tout simplement repris le cours de SilkyRoad et copier le code dans mon classeur.
    Bref ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Garder mise en forme graphique
    Par dimferte dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/11/2008, 14h38
  2. Mise en forme graphique (ombres/3D)
    Par cameleon33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2008, 21h31
  3. Mise en forme conditionnelle selon 2 critères
    Par nadia81 dans le forum Excel
    Réponses: 4
    Dernier message: 15/01/2007, 18h14
  4. Réponses: 6
    Dernier message: 12/01/2007, 20h10
  5. Mise en forme graphique
    Par petitours dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 16h07

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