Mon prog a un ptit bug...

tomgrc Messages postés 23 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 15 mars 2005 - 24 févr. 2005 à 16:25
voilhes Messages postés 33 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 6 septembre 2006 - 25 févr. 2005 à 19:44
bonjour,
j ai recup un prog qui permet de faire un graphe ss excel et de le transferer dans
VB.Ca fonctionne jusqu a l´apparition du graphe ds le presse papier, mais il ne
le renvoie pas dans mon image VB. Je joints le programme.Si vous avez des
suggestions....Merci d´avance.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<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Screen.MousePointer = vbHourglass
'Informe "Ouverture de Excel", "Excel openning"
'Calcul des données nécessaires au graphique
AmortissementAir = Bilan.AmortAir.Text
AmortissementAzote = Bilan.AmortAzote.Text
'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 Type:=5, LegendKey:=False, _


HasLeaderLines:=True 'xlDataLabelsShowValue
'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.ChartArea.CopyPicture


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

1 réponse

voilhes Messages postés 33 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 6 septembre 2006 6
25 févr. 2005 à 19:44
Je viens de faire le test. Si ton graphique apparaît bien sous Excel et qu'il est sélectionné:

ActiveChart.ChartArea.Copy

Sous VB, j'ai mis une PictureBox:

Picture1.Picture = Clipboard.GetData

-Francis-
0
Rejoignez-nous