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 :

Mise à jour automatique d'un graphique sur formulaire


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut Mise à jour automatique d'un graphique sur formulaire
    Bonjour,
    Je précise avant tout que j'ai lu l'article "Comment maîtriser la génération de graphiques pour vos applications Access" sur ce lien.
    Après de multiples tentatives et de multiples recherches, je ne trouve malheureusement pas réponse à mon problème (qui doit pourtant être simple...).
    J'ai un formulaire avec une table et un graphique (voir ci-dessous, NB : le graphique c'est l'encadré blanc)

    Nom : graphiquevide.jpg
Affichages : 1129
Taille : 117,3 Ko

    L'encadré rouge symbolise les données que l'utilisateur peut modifier dans le tableau, le reste des données sont soit déterminées par un paramétrage sur un formulaire précédent, soit calculées par les valeurs introduites dans les colonnes encadrées de rouge (ce qui est le cas de la colonne "Erreur%" par exemple).

    Le problème :

    _ Mon graphique qui est sous la forme d'un encadrer blanc n'apparaît que lorsque je clique dessus et que je reclique sur ma table...(ci dessous le graphique quand il apparaît)

    Nom : graphique.png
Affichages : 1077
Taille : 5,4 Ko

    Les deux choses que je souhaite produire :

    1) Que le graphique apparaissent des que l'on accède au formulaire.
    Tentatives : Générer le graphique lors de l'ouverture de l'actuel formulaire depuis le précédent formulaire... Mais je me perds dans une complexité... Je me dis qu'il doit y avoir plus simple...

    2) Que le graphique ce mette à jours instantanément des que l'on modifie une valeur dans le tableau.
    Tentatives : J'ai fais des tentatives avec requery et refresh en "procédure événementielle" après MAJ des valeurs encadrées en rouge mais je n'y arrive pas...surement que je ne tape pas correctement mon VBA.

    Bref si quelqu'un peut m'aider dans ma déprime et ainsi évité d'exploser mon pc sur la table je lui en serait très reconnaissant...

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Pour illustrer un peu mieux mon problème dans le cas numéro 2)

    Je saisie en mode création le champs modifiable dans la table, dans l'onglet "Evénement", sur le champs "Après MAJ", je saisie la procédure événementielle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Graphique.Object.Application.Update
    ou bien
    Aucune de ces 2 lignes ne fonctionne, lorsque je modifie la valeur dans la table j'obtiens la fenêtre :

    Nom : erreur_maj.png
Affichages : 1274
Taille : 28,0 Ko

    Je précise que le nom du graphique en question est bien "Graphique" quand je fais clique droit et que je regarde le nom...

    Bref le problème c'est surtout que je n'arrive pas a "saisir" mon graphique dans le code vba, j'ai parcourur toute les possibilité qui sont présente après "Me." et rien n'evoque mon graphique... pourquoi ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonsoir jossdu39.
    Essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!MonFormulaire!Graphique.Requery
    Apparemment ta "table" est dans un sous-formulaire ,donc Me ne peut pas convenir si le graphique est dans le formulaire principal.
    Cdlt

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Merci du coup de main Thierry_PALLIER

    La sélection s'effectue bien cependant aucune des lignes de codes suivantes ne permet de faire une mise à jour en direct de mon graphique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms!Index!Graphique_Index.Activate
    Forms!Index!Graphique_Index.Requery
    La ligne de code suivante génère un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Index!Graphique_Index.Reqfresh
    Bref pas moyen d'avoir une modification en direct de mon graphique...
    Le seul moyen c'est toujours de cliquer sur le graphique et ailleurs dans le formulaire pour que l'affichage s'effectue.
    J'ai donc tenté de tricher en simulant par VBA les clics en question avec les lignes de codes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms!Index!Graphique_Index.SetFocus
    Me.fin.SetFocus
    Aucune erreur après ça ("fin" représente une zone de texte), cependant ça fonctionne a moitié... Car la sélection de la zone de texte n'est pas suffisante pour afficher mon graphique, il faut que la "valeur" soit selectionnée !
    Et la ligne de code :
    Ne passe pas...

    Je ne suis plus qu'a un clic d'avoir un graphique qui se met a jour en direct....
    J'ai plus d'idée...
    Help ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Au plus simple :un formulaire avec un graphique dans lequel tu double cliques pour faire apparaître la feuille de données. Après modification d'une valeur, le graphique se met à jour immédiatement.
    Sinon, par vba ,c'est

    voir le tuto de loufab ,notamment la partie DataSheet http://loufab.developpez.com/tutorie...graph1/#LIII-A
    Cdlt

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bon le problème a pu se résoudre subitement de lui même avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Forms!Index!Graphique_Index.Activate
        Forms!Index!Graphique_Index.Requery
        Forms!Index!Graphique_Index.SetFocus
        Me.fin.SetFocus
    Allez savoir pourquoi, parce que ce code je l'avais déjà tapé et ça n'avait pas fonctionné...

    Par contre maintenant j'ai un autre problème...

    L'affichage et la mise a jour de mon graphique ce fait bien (tout fonctionne....Yepeeeeeee !)
    Mais....(parce que la vie c'est dégueulasse, il y a toujours des "mais"....)
    Lorsque la mise à jour ce fait ou que l'on clique sur le graphique, j'ai une table qui s'affiche :
    Nom : table.png
Affichages : 1055
Taille : 16,9 Ko

    Avez vous une idée pour que cette table ne s'affiche pas ?
    Je précise que même le ruban de access change, comme si l'on rentrait dans un mode d'édition de graph.

  7. #7
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonsoir jossdu39.
    C'est la table de données du graph .C'est ce que j'ai écrit dans le poste précédent !

    Pour passer outre le double click ,va en mode création ,sur l' objet graphique, propriétés, onglet "autres", auto activer = manuel.
    Verifie que tout fonctionne (mise à jour).
    Cdlt

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour Thierry_PALLIER,

    Désolé de t'avoir fait répéter, parfois je suis tellement plongé dans mon code que j'en oublie ce qui m'a été dis...
    Pour ce qui est de ta méthode de passer auto activer en "manuel", ça fonctionne pour ne pas afficher la table de données. Mais malheureusement ça fonctionne également pour ne plus afficher et opérer les modifications sur le graphique.

    Je ne vois pas d'autre manière que de simuler un double clic sur une zone texte de mon formulaire (ça retire la feuille de donnée quand c'est fait directement sur le formulaire)...
    Mais comme dis précédemment le code :
    Ne fonctionne pas... Je reste ouvert a toute aide
    Ou si quelqu'un a une autre idée...

    Bref je retourne au charbon...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bon je bloque toujours sur ce point...
    J'ai essayé de mettre la largeur de la feuille de donnée à 0. Mais je n'y arrive pas.
    Quelqu'un a une idée ?

Discussions similaires

  1. Mise à jour automatique des champs d'un formulaire
    Par laurentSc dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2010, 14h27
  2. Mise à jour automatique des champs d'un formulaire
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2010, 22h27
  3. Série graphique mise à jour automatiquement
    Par blooby dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2007, 10h35
  4. [VBA-E]Graphique mise à jour automatiquement qd suppression
    Par LostIN dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 16/01/2007, 16h42
  5. Question sur mise à jour automatique
    Par Al soltani dans le forum Access
    Réponses: 2
    Dernier message: 03/03/2006, 11h51

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