Afficher Graphique dans Userform

Celeda

XLDnaute Barbatruc
Bonjour,

Pour afficher un graphique de la feuille AREA dans un userform déclenché par un bouton, j'ai récupéré une macro d'un xldnaute.

Private Sub UserForm_Activate()
Set CurrentChart = Sheets("AREA").ChartObjects(2).Chart
Fname = ThisWorkbook.Path & "C:\WINDOWS\Temp.gif"
CurrentChart.Export Filename:=Fname, filtername:="GIF"
Image1.Picture = LoadPicture(Fname)
End Sub


Cette macro marchait pile poil sur mon pc maison excel 2007.
Revenue à la triste réalité du boulot, sur mon pc bureau excel 2000, elle s'arrêtait sur :


Fname = ThisWorkbook.Path & "C:\WINDOWS\Temp.gif"
en modifiant le chemin C:\WINDOWS\Temp.gif, plus aucun problème sur cette ligne de code;

maintenant elle s'arrête sur
CurrentChart.Export Filename:=Fname, filtername:="GIF"
Pouvez-vous m'aider, svp, à comprendre pourquoi elle se bloque ???:confused:

Je vous remercie à l'avance de votre aide.
 

mutzik

XLDnaute Barbatruc
Re : Afficher Graphique dans Userform

Bonjour Celeda, gros bisous pour 2010

je ne suis pas sur que CurrentChart.export ... existe en excel2000
pour le vérifier, double click sur currentchart et tapes sur F1 (aide) et là tu verras bien s'il connait et / ou la syntaxe (priez pour nous) à mettre en oeuvre
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher Graphique dans Userform

Bonjour à tous

petite remarque au passage, ta ligne de code :

Code:
Fname = ThisWorkbook.Path & "C:\WINDOWS\Temp.gif"

doit renvoyer dans la variable "fname" un chemin du genre :

Code:
"C:\MesDocs\dossiersDuClasseurC:\WINDOWS\Temp.gif"

puisque tu concatène le chemin du classeur et "C:\WINDOWS\Temp.gif"..

hors ce chemin ne doit pas être valide, enfin me semble t'il...

bonne journée
@+
 

Eric 45

XLDnaute Occasionnel
Re : Afficher Graphique dans Userform

Re

J'ai lu trop vite

Essaie ceci :
Code:
Option Explicit

Private Const Fichier As String = "C:\WINDOWS\Temp.gif"

Private Sub UserForm_Activate()

    Worksheets("AREA").ChartObjects(2). _
        Chart.Export Filename:=Fichier, filtername:="GIF"

    Image1.Picture = LoadPicture(Fichier)
End Sub

Eric
 

Celeda

XLDnaute Barbatruc
Re : Afficher Graphique dans Userform

Bonsoir,

Merci Eric et Pierrot pour vos remarques et suggestions.
J'essaye demain tout ceci.
Moi et les macros et j'avais même oublié les variables!!bouh!!!
Je vous tiens au courant.
 

Celeda

XLDnaute Barbatruc
Re : Afficher Graphique dans Userform

Bonjour,

Oui Eric tu as raison : pourquoi avoir chosi cette méthode....

parce que moi et les macros cela fait deux et je me suis aventurée à écrire les codes pour faire directement mais cela n'a pas fonctionné; alors pendant la période de Noël j'ai repris quelques fils et j'avais trouvé que la formule du USF était épatante; en plus je demande à mon client d'appuyer sur des boutons et hop le usf est là....sauf que c'était compter sans ma version boulot. Voilà.
Maintenant je suis prête à reprendre le usf et à y placer du code...mais pas seule.

Je vous reviens de toute façon car je vais essayer les deux approches pour voir si cela fonctionne.

En attendant quelle est la véritable différence entre afficher un usf par la création de l'image comme option 1 que j'ai proposée, et les données écrites directement dans l'USF, option 2 ?

Merci ERIC pour ton aide.
 

Celeda

XLDnaute Barbatruc
Re : Afficher Graphique dans Userform

Bonjour, re

Les codes avec la constante fonctionnent très bien!!!! je suis très contente

C'est vrai que c'est une image et que c'est moins "évident" qu'un véritable graphique mais c'est déjà cela.

Un grand merci.:)
 

Eric 45

XLDnaute Occasionnel
Re : Afficher Graphique dans Userform

Bonjour à tous
Bonjour Celeda, Pierrot93, mutzik

Bonjour,
.....
En attendant quelle est la véritable différence entre afficher un usf par la création de l'image comme option 1 que j'ai proposée, et les données écrites directement dans l'USF, option 2 ?

......

Perso, je préfère la 2ème (qui n'est pas plus "nette" que l'image de l'option 1) car :

- je ne "vois" pas 2 fois le graphique,
- le fichier sauvegardé sans le graph est moins lourd, enfin je suppose sans l'avoir vérifié,
- j'aime bien écrire du code,;)

et surtout je suis d'accord avec ce que j'écris. ;););)

Il y a certainement beaucoup d'autres bonnes raisons, non évoquées et que je ne connais pas, en faveur de la première ou de la deuxième solution (Il y aura peut être une personne pour nous éclairer).

Je suis content d'avoir pu t'aider, car d'habitude, c'est plutôt moi qui récupère tes formules.

A +

Eric
 

Statistiques des forums

Discussions
312 398
Messages
2 088 062
Membres
103 711
dernier inscrit
amin Saadaoui