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

IHM Discussion :

Problème sur le code d'un graphique


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut Problème sur le code d'un graphique
    Bonjour,

    J'ai fait un formulaire avec un graphique.
    J'ai modifié le format du graphique en programmation (couleur, police)
    Lorsque j'ouvre mon formulaire les couleur change bien en fonction d'une table.

    Mais lorsque j'insère mon formulaire dans un état le programme ne marche pas.
    J'ai une erreur qui s'affiche car mon formulaire n'est pas ouvert.
    Lorsque j'ouvre mon formulaire a l'ouverture de l'état ca marche bien (les couleurs changes) mais je voudrai ne pas avoir la fenêtre du formulaire ouverte.
    J'ai essayé de le masqué avec AcHidden ou par visible=false
    mais ca ne marche plus dans se cas.

    Donc je ne sais plus ou mettre mon code du formulaire (dans un des évènement de l'état ou du formulaire)

    Je vous met mon code.

    Merci de votre aide.


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    Dim Graph   As Graph.Chart
    Dim oDataS  As Object
    Dim noCourbe As Integer
    Dim NomBarre, Mois As String
    Dim ValBarre As Double
    Mois2 = Format(Now(), "mmmm")
    Dim b As Variant
    Dim LUBMTD As Double
    Dim sSQL As String
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    Set db = CurrentDb
    Dim val As Single
     
    DoCmd.OpenForm "Graph-LU/ME-usine" ', , , , , acHidden
    'Forms("Graph-LU/ME-usine").Visible = False
     
    Set Graph = Forms("Graph-LU/ME-usine")(Graphique).Object.Application.Chart
    Set oDataS = Graph.Application.DataSheet
     
    sSQL = "SELECT [Graph LU/ME].[Nom Var], [Graph LU/ME].Valeur"
    sSQL = sSQL & " FROM [Graph LU/ME];"
     
     Set myrst = db.OpenRecordset(sSQL)
    'si le recordset n'est pas vide
     If Not myrst.EOF Then
         ' tant qu'il n'est pas vide
         Do While Not myrst.EOF
              nom = myrst.Fields("[Nom Var]").Value
              val = myrst.Fields("[Valeur]").Value
     
    'On compte le nombre de points (Barre) du graphique
    nbCourbe = Graph.SeriesCollection.Count
    For noCourbe = 1 To nbCourbe
     
    NomBarre = oDataS.Cells(1, noCourbe + 1).Value
    'ValBarre = oDataS.Cells(2, noCourbe + 1).Value
    b = Split(NomBarre, " ")
     
    With Graph.SeriesCollection(NomBarre)
        .HasDataLabels = True
     
            With .DataLabels
     
                .Font.Size = 5
                '.ShowValue = True
                .NumberFormat = "##.#%"
                .ShowSeriesName = False
                .Position = xlLabelPositionCenter
            End With
     
    End With
     
    If nom = NomBarre Then
     
    If b(0) = "LU" Then
     
    If b(1) = "MTD" Then
     
    LUBMTD = DLookup("[LU B]", "Objectif-Cumulé", "[Mois]='" & Mois2 & "' ")
     
        If Round(val * 100, 2) >= Round(LUBMTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(0, 255, 0)
                End With
     
        ElseIf Round(val * 100, 2) < Round(LUBMTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
        End If
     
    ElseIf b(1) = "YTD" Then
     
    LUCYTD = DLookup("[LU C]", "Objectif-Cumulé", "[Mois]='" & Mois2 & "' ")
     
        If Round(val * 100, 2) >= Round(LUCYTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(0, 255, 0)
                End With
     
        ElseIf Round(val * 100, 2) < Round(LUCYTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
     
        End If
     
    End If
    ElseIf b(0) = "ME" Then
     
    If b(1) = "MTD" Then
     
    MEBMTD = DLookup("[ME B]", "Objectif-Cumulé", "[Mois]='" & Mois2 & "' ")
     
        If Round(val * 100, 2) >= Round(MEBMTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(0, 255, 0)
                End With
     
        ElseIf Round(val * 100, 2) < Round(MEBMTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
        End If
     
     
    ElseIf b(1) = "YTD" Then
     
    MECYTD = DLookup("[ME C]", "Objectif-Cumulé", "[Mois]='" & Mois2 & "' ")
     
        If Round(val * 100, 2) >= Round(MECYTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(0, 255, 0)
                End With
     
        ElseIf Round(val * 100, 2) < Round(MECYTD * 100, 2) Then
     
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
     
        End If
     
    End If
    End If
    End If
    Next
        myrst.MoveNext
         Loop
     End If

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    j'insère mon formulaire
    tu veux dire ton graphique

    J'ai essayé de le masqué avec AcHidden ou par visible=false
    mais ca ne marche plus dans se cas.
    Erreur ? Résultat incorrect ?

    Je n'ai pas essayé de comprendre tout ton code. Mais si ça marche lorsque le formulaire est ouvert, c'est la bonne piste. (en tout cas, la plus simple)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut
    Salut,

    Mon graphique se trouve dans mon formulaire donc c'est mon formulaire que j'insère dans mon état en tan que sous-formulaire.

    Lorsque je met AcHidden ou visble en faux mon état s'ouvre courectement avec mon graphique mais les couleur ne se mettent pas a jour.

    Pour vérifier j'ai essayé en changeant les données de ma table objectif pour laquel la couleur change. (rouge si la valeur est en dessous et vert si la valeur est au dessus).

    Je pense aussi être sur la bonne voie mais la j'ai plutôt l'impression d'être dans une impasse.

    Si tu as une idée je suis preneur.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut
    Bon j''ai trouvé une solution.
    C'est pas jolie mais en attendant de trouver mieux ca marche.
    Dans le formulaire qui ouvre mon état, sur le code du bouton je lui dis d'ouvrir mon état puis de le fermer et enfin de le ré-ouvrir.
    Comme ca j'ai bien mes couleurs.
    Mais se n'est pas jolie.

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

Discussions similaires

  1. Problème sur ce code ?
    Par Yanis-A dans le forum Général Java
    Réponses: 5
    Dernier message: 28/06/2011, 19h34
  2. problème sur un code pour supprimer un fichier
    Par Bricoltou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/02/2010, 19h17
  3. Probléme sur un code
    Par aptagud dans le forum Flash
    Réponses: 3
    Dernier message: 30/08/2007, 14h57
  4. Problème sur macro (2 exécutions de code)
    Par Tsuna78 dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2007, 20h24
  5. [68k] Problème sur un exemple de code
    Par jib2b dans le forum Autres architectures
    Réponses: 2
    Dernier message: 19/04/2006, 23h10

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