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

VB 6 et antérieur Discussion :

[VB6] Copie graphique excel dans picturebox (problème)


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut [VB6] Copie graphique excel dans picturebox (problème)
    Bonjour,

    J'ai besoin de copier un graphique excel dans ma form. après lecture de ce vieux topic j'ai eu quelques éléments de réponse.
    Cependant j'ai écrit un programme de test afin de voir si le principe fonctionnait. Mais rien ne s'affiche! Rien n'est enregistré dans le presse papier non plus.

    Concernant l'ouverture, la lecture et la sélection du graphique, je n'ai aucun problème.

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form1_Load()
        Workbooks.Open ("C:\test.xls")
        Sheets("Feuil1").Select
        ActiveSheet.ChartObjects("graphique 3").Activate
        ActiveChart.CopyPicture
        Picture1.Picture = Clipboard.GetData()
        Workbooks.Close
    End Sub
    Merci beaucoup par avance à ceux qui se pencheront sur la question!

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Le presse-papier parait don vide de graphique ...

    Pourquoi ?

    Je n'en sais à proprement parler rien (je connais très mal Excel).

    J'aurais toutefois tendance à penser que tu n'as pas su définir l'élément graphique à mettre dans ton presse-papiers ... Probablement une omission de la précision ChartArea .....

    car :

    ActiveChart.CopyPicture

    me parait assez suspect ! Quel "Chart" serait ici actif, dans ton code ... ???? (ou alors non seulement je ne comprends rien à Excel, mais, en plus, je suis complètement bouché ....)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    Citation Envoyé par Xerath Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.ChartObjects("graphique 3").Activate
    Le graphique est actif depuis cette ligne! (je me sert de ce type de déclarations dans d'autres programmes.

    J'ai déjà essayé de préciser ChartArea, comme je l'ai vu au détour du post mentionné ci dessus, mais ça n'a pas plus donné.

    merci de ta réponse

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form1_Load()
        Workbooks.Open ("C:\test.xls")
        Sheets("Feuil1").Select
        ActiveSheet.ChartObjects("graphique 3").Activate
        ActiveChart.CopyPicture
        Picture1.Picture = Clipboard.GetData()
        Workbooks.Close
    End Sub
    Le code produit par les macros excel doit être nettoyé afin d'éviter les selection et activation -
    cela évite les interactions incontrolées - idem en invoquant directement les objects (wk, ch).
    D'autre part utilise plutôt la méthode export de l'object chart qui utilise les filtres graphiques de la machine
    soit
    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
    Private Sub Form1_Load()
        Dim wk As Workbook, ch As Chart, monImage As String
     
        Set wk = Workbooks.Open("C:\test.xls")
        Set ch = Worksheets("Feuil1").ChartObjects("graphique 3").Chart
     
        monImage = wk.Path + "\imgChart.gif"
        ch.Export monImage
     
        Me.Picture1.Picture = LoadPicture(monImage)
     
        Kill monImage
        wk.Close
     
        set ch=Nothing
        set wk = Nothing
    End Sub

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    Ca fonctionne à merveille!

    Merci beaucoup.

    Je tiendrais compte de tes remarques en ce qui concerne la déclaration de mes variables, merci aussi de ces précieux conseils.

    Merci à vous deux pour vos réponses

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

Discussions similaires

  1. [VB6] inserer des images dans picturebox et sauvegarder BMP
    Par todac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2007, 14h25
  2. Copie de excell dans word
    Par tintin101 dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/03/2007, 11h28
  3. [C#] Assembly pour ajouter un graphique excel dans ma form
    Par bossun dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/06/2006, 17h04
  4. [VBA-E]Insertion graphique Excel dans Word
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/04/2006, 14h26
  5. [VBA-E]graphique excel dans un userform
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/03/2006, 09h03

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