Copier-coller graph excel dans VB [Résolu]

Messages postés
10
Date d'inscription
mardi 11 janvier 2005
Dernière intervention
12 mars 2005
- - Dernière réponse : tomgrc
Messages postés
23
Date d'inscription
jeudi 27 janvier 2005
Dernière intervention
15 mars 2005
- 25 févr. 2005 à 13:33
Bonjour à tous,

je souhaite copier un graph se trouvant dans une feuille Excel depui
VB, à laquelle j'accède sans souci mais je n'arrive pas à le coller
dans VB, toujours un problème d'objet;

sinon, serait-il plus simple de créer ce graph à partir des valeurs de mon tableau directement?


En fait je ne trouve aucune syntaxe
correcte traitant des graphiques excel sous VB mais je continue de
chercher donc si quelqu'un a un ptit conseil ou une piste merci.

kenny_dfc
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
23
Date d'inscription
jeudi 27 janvier 2005
Dernière intervention
15 mars 2005
3
Merci
Enfin, c est bon!!!!
Alors moi le programme il créé un graphe excel a partir de VB ( dc ca ca ne
doit pas t´interesser car tu as deja le graphe ds excel enfin apparemment) et
apres il copie le graphe dans VB. Il faut dc que tu créés une Imagebox dans
VB. Je te mets tt le programme, si t´as des ? n´hésites pas mais plutot sur
mon mail: [mailto:thomas.vukelic@airliquide.com thomas.vukelic@airliquide.com], je l aurais bcp plus vite.Thomas

Option Explicit
Sub CreationGraphiqueRéponses()
'Crée le graphique pour la revue éditée dans la fenetre Principale
'-Statistique des réponses renseignées
Dim Langue As String
Dim AmortissementAir, AmortissementAzote, i As Integer
Dim xlApp, xlSheet, xlGraph As Object

'Mise à jour de l'indicateur graphique
'Principale.Graphique = "CreationGraphiqueRéponses"
'On Error GoTo Fin
Screen.MousePointer = vbHourglass
'Informe "Ouverture de Excel", "Excel openning"
'Calcul des données nécessaires au graphique
AmortissementAir = "12"
AmortissementAzote = "20"
'Ouverture d'une instance d'Excel
Set xlApp = CreateObject("Excel.Application")
'Excel travaille en arrière-plan
xlApp.Visible = True
xlApp.DisplayAlerts = True 'Pas de message intempestifs au moment de la fermeture
'Ajout d'un classeur
xlApp.Workbooks.Add
'Ajout d 'une feuille dans le classeur
Set xlSheet = xlApp.Workbooks(1).Sheets(1)
'Informe "Création du graphique", "Preparation of the chart"
'Ecriture des légendes nécessaires au graphique
'Langue = Principale.ComboLangueLogiciel.Text
xlSheet.Range("A1").Select
If Langue = "Français" Then
xlSheet.Range("A1").FormulaR1C1 = "Amortissement"
Else
xlSheet.Range("A1").FormulaR1C1 = "Amortissement"
End If
xlSheet.Range("B1").FormulaR1C1 = Str(AmortissementAir)
xlSheet.Range("C1").FormulaR1C1 = Str(AmortissementAzote)
'Ajout d'un graphique
xlApp.Charts.Add after:=xlApp.Worksheets("Feuil1")

With xlApp.ActiveChart
.ChartType = 54 'xl3DPieExploded
.SetSourceData Source:=xlSheet.Range("A1:C8"), PlotBy:=8 ' _
'xlColumns
'.Location Where:=2, Name:="Graph1" 'xlLocationAsObject
'.HasTitle = False
.ApplyDataLabels 2, False
'Suppression du rectangle gris
.PlotArea.Select
xlApp.Selection.ClearFormats
'Grossissement de la police de la légende
.Legend.Select
xlApp.Selection.AutoScaleFont = True
With xlApp.Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 14
End With
'Déplacement de la légende
xlApp.Selection.Left = 540

'Grossissement de la police des étiquettes
.SeriesCollection(1).DataLabels.Select
xlApp.Selection.AutoScaleFont = True
With xlApp.Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 14
End With
'Copie le graphique dans le presse-papier
xlApp.ActiveChart.CopyPicture
End With

'Récupération du graphique dans l'image via le Presse-Papier
Me.Image1.Picture = Clipboard.GetData()
End Sub

Merci tomgrc 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Messages postés
23
Date d'inscription
jeudi 27 janvier 2005
Dernière intervention
15 mars 2005
0
Merci
Alors j ai le mm probleme que toi. Moi j ai le programme mais y a une tte petite merde et du coup ca fonctionne pas. Je résoud le probleme et je t envoie le programme. J espere demain.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.