alleen een lijn opslaan als .jpg met VB van Excel

Status
Niet open voor verdere reacties.

Jan1234Klaassen

Gebruiker
Lid geworden
9 sep 2014
Berichten
6
Hallo allemaal,

het volgende zou ik graag opgelost zien. Een lijn wordt getekend op een blad van Excel.
Hoe kan je alleen deze lijn opslaan als .jpg met VB van Excel. De bedoeling is dat alleen de lijn wordt opgeslagen en niet het formulier.

Alvast hartelijk bedankt,

Jan Klaassen
 
Het kan, met een macro. Misschien een beetje spelen met de hoogte van de grafiek voor het beste resultaat.
Code:
Sub ExportPicture()
Dim MyChart As String, MyPicture As String
Dim PicWidth As Long, PicHeight As Long
Dim obj As Object, shp As Shape


     Application.ScreenUpdating = False
     On Error GoTo Foutje

    For Each obj In ActiveSheet.Shapes
         MyPicture = obj.Name
         Set shp = ActiveSheet.Shapes(MyPicture)
         With shp
            If .Height = 0 Then PicHeight = 1 Else PicHeight = .Height
            PicWidth = .Width
        End With
    
         Charts.Add
         ActiveChart.Location Where:=xlLocationAsObject, Name:="Blad1"
         MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2)
    
         With ActiveSheet
               With .Shapes(MyChart)
                     .Width = PicWidth
                     .Height = PicHeight
               End With
                shp.Copy
    
               With ActiveChart
                     .ChartArea.Select
                     .Paste
               End With
    
               .ChartObjects(1).Chart.Export Filename:="Lijn.jpg", FilterName:="jpg"
               .Shapes(MyChart).Cut
         End With
    Next obj

     Application.ScreenUpdating = True
     Exit Sub

Foutje:
     MsgBox "Je export is geen plaatje"
End Sub
 
OctaFish,

Vriendelijk bedankt voor u snelle reactie. Uit uw reactie begrijp ik dat uw oplossing een lijn uit een grafiek betreft.
Zo goed ben ik niet in VBA van Excel om te kunnen beoordelen of uw oplossing ook opgaat voor wat ik bedoelde.
Mijn vraag geldt voor een lijn getrokken onder het hoofdje hulpmiddelen voor tekenen. Vergt dit een andere oplossing?

mvg

Jan Klaassen
 
Uit uw reactie begrijp ik dat uw oplossing een lijn uit een grafiek betreft.
Dat heb ik nergens gezegd :). Sterker nog: deze macro heb ik getest met een normaal lijnobject, dat een beetje is opgemaakt. Je kunt in Excel geen objecten rechtstreeks exporteren naar plaatjes, maar alleen grafieken. Vandaar dat het object eerst naar een grafiek wordt gekopieerd, en de 'grafiek' dan wordt opgeslagen als afbeelding. Het is dus een noodzakelijke tussenstap.
 
OctaFish,

Weer vriendelijk bedankt voor u snelle reactie. IK zal het z.s.m. bestuderen.

mvg

Jan Klaassen
 
lleen een lijn opslaan als .jpg met VB van Excel

OctaFish,

macro werkt uitstekend. Vriendelijk dank.
Echter van deze regel : MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2) , begrijp ik niets van.
Kunt u deze regel uitleggen of aangeven waar ik hierover infromatie kan vinden?

mvg

Jan Klaassen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan