Enregistrer groupe forme en image VBA

Fermé
elpiaf Messages postés 1 Date d'inscription vendredi 17 mai 2013 Statut Membre Dernière intervention 17 mai 2013 - 17 mai 2013 à 12:14
 elpiaf - 12 juin 2013 à 17:39
Bonjours, tout d'abord je tiens à m'excuser si la question a déjà été posée sur le forum mais si c'est le cas je ne l'ai pas trouvé.
Mon problème est : j'ai créé un graphique à l'aide de forme automatique (rectangle , ligne , etc) . Ce graphique apparait dans une feuille excel, et je voudrait pouvoir enregistrer toutes ces formes au format image pour pouvoir l'insérer dans une Image.picture.
J'espère avoir été assez clair , voici un bout de mon code pour mieux visualiser la création de mon graphique.
For i = 0 To compteur - 1
k = 0
For n = 0 To compteur2 - 1

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 145 + k, i * 30, 2 * tprct(i, n), 20).Select
Selection.ShapeRange.Fill.ForeColor.RGB = tclr(n)
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Selection.ShapeRange.Line.Weight = 1
k = k + 2 * tprct(i, n)
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 393, n * 15, 10, 10).Select
Selection.ShapeRange.Fill.ForeColor.RGB = tclr(n)
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Selection.ShapeRange.Line.Weight = 1
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 405, n * 15, 100, 12).Select
Selection.Characters.Text = t4(n)
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, i * 30, 100, 20).Select
Selection.Characters.Text = t3(i)
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter

Next
Next

With ActiveSheet.Shapes.AddLine(145, 0, 145, compteur * 30).Line
.Weight = 2
.ForeColor.RGB = RGB(51, 51, 51)

End With

With ActiveSheet.Shapes.AddLine(145, compteur * 30, 345, compteur * 30).Line
.Weight = 2
.ForeColor.RGB = RGB(51, 51, 51)
End With


k = 0
For i = 145 To 345 Step 40
With ActiveSheet.Shapes.AddLine(i, compteur * 30, i, compteur * 30 + 3).Line
.Weight = 1
.ForeColor.RGB = RGB(51, 51, 51)
End With
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, i - 17, compteur * 30 + 10, 39, 20).Select
Selection.Characters.Text = k & "%"
Selection.HorizontalAlignment = xlLeft
k = k + 20
Next
A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 mai 2013 à 18:59
Bonjour,

Il serait plus simple de tester « un bout de mon code pour mieux visualiser la création de mon graphique » si celui-ci fonctionnait !
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 20/05/2013 à 23:37
Bonsoir,

une capture écran toute simple ça ne le fait pas ?
Car à part les graphiques qu'on peut exporter en .gif ou .jpg il n'y a pas grand chose...
eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 mai 2013 à 23:53
Bonjour,

Essaies :
    ActiveSheet.Shapes.SelectAll
    Selection.Copy
    ActiveSheet.Pictures.Paste
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
21 mai 2013 à 10:23
Bonjour,

bien vu.
Et noté ;-)

eric
0
Merci de vos réponses, j'ai tout simplement enregistrer la feuille Excel contenant l'image. Ce n'est pas vraiment ce que je désirais mais ça fera l'affaire.
Léo
0