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 :

Remplissage Datasheet d'un graphique à partir d'une listview


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Remplissage Datasheet d'un graphique à partir d'une listview
    Bonjour bonjour !

    Dans un de mes formulaires, j'ai incorporé un graphique, que je souhaite remplir d'après les données que j'ai dans ma listview (remplie grâce à un super tuto de SilkyRoad )

    J'ai ce code :
    (pour info IndexCol me renvoie un numéro de colonne)

    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
    Function AfficherGraph()
        Dim vlDataSheet As Graph.DataSheet
        Dim Graph_Data As Object
        Set Graph_Data = Form_Formulaire1.Graph1.Object
        Set vlDataSheet = Graph_Data.Application.DataSheet
     
     
        vlDataSheet.Cells.Clear
     
        vlDataSheet.Cells(1, 1).Value = "Date Heure"
        vlDataSheet.Cells(1, 2).Value = "PM"
        vlDataSheet.Cells(1, 3).Value = "PA Aju"
        vlDataSheet.Cells(1, 4).Value = "PA Alea"
        vlDataSheet.Cells(1, 5).Value = "PA"
     
     
        For i = 1 To Form_Formulaire1.Form.ListViewCentrale.ListItems.Count
                vlDataSheet.Cells(i + 1, 1).Value = Form_Formulaire1.ListViewCentrale.ListItems(i).ListSubItems(IndexCol("Début"))
                vlDataSheet.Cells(i + 1, 2).Value = Form_Formulaire1.ListViewCentrale.ListItems(i).ListSubItems(IndexCol("PM"))
                vlDataSheet.Cells(i + 1, 3).Value = Form_Formulaire1.ListViewCentrale.ListItems(i).ListSubItems(IndexCol("PA Aju"))
                vlDataSheet.Cells(i + 1, 4).Value = Form_Formulaire1.ListViewCentrale.ListItems(i).ListSubItems(IndexCol("PA Alea"))
                vlDataSheet.Cells(i + 1, 5).Value = Form_Formulaire1.ListViewCentrale.ListItems(i).ListSubItems(IndexCol("PA"))
        Next i
     
    End Function
    Ce code marche très bien, mais c'est très très très long. Ca prend jusqu'à 80 secondes pour afficher mon graphique, sachant qu'il y a une centaine de ligne dans ma listview.

    Est-ce que vous auriez une idée/un autre moyen d'afficher mon graphique qui soit peut-être plus optimale que celle-là ?

    Merci par avance !

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Si tu es bien dans ACCESS (j'en doute un peu !), il vaut mieux définir "vlDataSheet" comme un RecordSet que tu peux mettre jour via une requête de mise à jour. La commande Me.Refresh du formulaire affichera les données voulues.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Salut Zekraoui_Jakani,
    Si tu es bien dans ACCESS (j'en doute un peu !)
    Euh, oui, je suis dans Access, pourquoi doutes-tu ?

    Je ne suis pas sûre de bien comprendre ce que tu veux dire.
    vlDataSheet est une Datasheet, celle du graphique que j'affiche à partir des données de ma listview. Est-ce que c'est sur ma listview que tu me conseilles de faire un recordset ? Ou de faire un recordset sur ma datasheet ? Dans ce cas je ne suis pas sûre de voir comment ça marche.

    Il y a peut-être un autre moyen pour afficher un graphique que de remplir sa datasheet ligne par ligne, si tu as une idée je suis preneuse.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour bonjour,
    Je me permets de relancer le sujet, n'ayant toujours pas trouvé de solution.
    En espérant que quelqu'un sera inspiré et m'aidera à afficher mon graphique dans un temps raisonnable !

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Solution
    Bon, si ça peut aider quelqu'un, j'ai trouvé une solution :
    Il suffit de créer une string (ici strDonneesGraphe) des données séparées par des ";" et d'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form_Formulaire1.Graph1.RowSource = strDonneesGraphe
    Form_Formulaire1.Graph1.Refresh

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

Discussions similaires

  1. Graphique à partir d'une donnée externe
    Par cashway75 dans le forum Excel
    Réponses: 2
    Dernier message: 28/12/2008, 18h10
  2. remplissage de zones de textes à partir d'une base
    Par metwa dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2008, 12h23
  3. Remplissage automatique de cellules Excel à partir d'une liste
    Par Gullivert dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2006, 17h48
  4. graphique à partir d'une requete analyse croisée
    Par coralyvan dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/07/2006, 21h25
  5. [JpGraph] Générer un graphique à partir d'une requête
    Par shun dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 31/01/2006, 19h24

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