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

VBA Access Discussion :

Modifier graphique en VBA (forme et segment)


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut Modifier graphique en VBA (forme et segment)
    Bonjour,
    Après de longues recherches infructueuses, je vous expose mon problème.
    J'ai un graphique simple composé d'une courbe avec en abscisses 12 mois et en ordonnées une valeur quelconque.
    Je souhaiterai que les 3 derniers segments de ma 2 courbe soient affichés en pointillés en non en trait continu, mais pas de façon permanente d'ou la nécessité de passer via VBA.
    Je n'arrive pas à manipuler les objets seriescollection() et points() correctement, dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for each graph
        for each seriescollection
            for each point/segment
                if dans les 3 derniers alors
                    pointillé
                else
                    continu
                endif
            next point/segment
        next serie
    next graph
    Merci pour votre aide
    Laurent

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    J'ai un peu avancé.
    J'arrive à faire en sorte d'afficher ma courbe en noir et les 3 derniers segments en vert.
    Je n'arrive toujours pas à mettre les 3 derniers segments (10 à 12) en pointillé, la constante xlDash m'efface mon segment vert
    Si vous avez une idée, je me fiche de la couleur en fait, ce que je souhaite, c'est pouvoir mettre des pointillés sur les 3 derniers segments uniquement.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    GraphObj.SeriesCollection(1).Border.Color = vbBlack
     
    With GraphObj.SeriesCollection(1).Points(10)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With
    With GraphObj.SeriesCollection(1).Points(11)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With
    With GraphObj.SeriesCollection(1).Points(12)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Bonjour ,
    Tu ne dois pas être très loin de ta solution,
    car je viens de faire un essai en Access 2003 (SP3) avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Set oChart = o1Chart.Object         
     
     For i = 5 To 10
              With oChart.SeriesCollection(1).Points(i)
               .Border.Color = vbBlue
               .Border.LineStyle = xlDash
            End With
      Next i
    .. et j'obtiens bien des pointillés bleus
    mais bien regarder les déclarations et peut-être à vérifier selon les version et patches d'Access
    "Always look at the bright side of life." Monty Python.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    Merci, en effet je ne dois pas être loin mais je n'y arrive toujours pas, je continue de chercher.

    Pour compléter

    - Je suis en section Print de mon état
    - J'ai juste la déclaration
    - Ensuite j'ai des instructions liées à mes échelles graphiques
    - Et ensuite le code tel que décrit auparavant

    - Et ça ne marche pas hélas.
    - Je suis en format de fichier Access 2002/2003 et SP3
    - Si je ne met que la couleur, j'ai bien la couleur sur mes segments, en traits continus.
    - Si je rajoute le linestyle, je n'ai plus de traits (juste les marqueurs en fait, plus de lignes)

    PS : j'ai parcouru pas mal de tes posts lors de mes recherches et y ai trouvé des infos vraiment intéressantes coté graphiques, tu as du bien plancher sur le sujet !

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Salut ,
    Je ne savais pas que c'était dans un état (et non dans un form)
    alors c'est dans l'évt Formatage (et non Impression) de la section de ton graphe qu'il faut insérer ton code.

    Bonne continuation

    PS : Effectivement, je pourrais comptabiliser un certains nombre de jours passés sur les courbes, mais qd on aime ... on ne compte pas !
    "Always look at the bright side of life." Monty Python.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    Re,
    Je ne voudrais point te contredire mais le résultat ne change pas en m'y prenant ainsi.
    (la partie du code qui gère mes échelles graphiques est elle en év. Print et ça marche très bien, je l'ai ramené en év. format, ça marche toujours bien aussi)
    Curieux...je vais chercher encore, encore merci pour tes conseils, je vais bien finir par y arriver !


    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
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
     
    Dim graphobj2 As Object
    Set graphobj2 = Me.g4
     
    graphobj2.SeriesCollection(1).Border.Color = vbBlack
     
    With graphobj2.SeriesCollection(1).Points(10)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With
     
    With graphobj2.SeriesCollection(1).Points(11)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With
     
    With graphobj2.SeriesCollection(1).Points(12)
        .Border.Color = vbGreen
        .Border.LineStyle = xlDash
    End With
     
    End Sub

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    En mettant mes échelles dans l'év. Format et mes courbes/segments dans l'év. print, ça semble marcher !
    Mais je n'ai pas encore tout compris !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    Juste pour finaliser,

    Ce ne semble pas être une question d'évènement mais de valeur affectée à ma "seriescollection(i).points(j).border.linestyle" de mon graphique.

    Si je met xlDash, ça n'affiche rien
    Si je mets la valeur correspondante (-4115) et bah là ça marche !

    Donc si ça peut servir à qqun d'autre...

    Merci Micniv en tout cas pour ton soutien

    Laurent

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Ca reste mystérieux que xlDash ne soit pas connue chez toi
    alors que c'est une constante déclarée dans la référence Microsoft Graph xxx !

    Bonne continuation.
    "Always look at the bright side of life." Monty Python.

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

Discussions similaires

  1. [XL-2007] Graphique Excel VBA modifié.
    Par Scutigere dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/10/2009, 16h04
  2. [E03][VBA][Graphiques] - mise en forme
    Par mathel dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/02/2008, 15h01
  3. Réponses: 5
    Dernier message: 02/01/2007, 15h19
  4. Paramétrage de graphique en vba
    Par demerzel0 dans le forum Access
    Réponses: 2
    Dernier message: 07/11/2005, 10h59
  5. Réponses: 1
    Dernier message: 16/09/2005, 01h29

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