ik wil een ruim Excel-bereik (91 regels, 16 kolommen) opslaan als jpg.
In bijgaande sketch werkt methode 1 goed (maar omslachtig).
Methode 2, waarbij ik naar een grafiek kopieer - levert een onjuist plaatje.
Wie kent een mooie methode om het clipboard AUTOMATISCH naar een grafisch programma te kopiëren. (bijvoorbeel IrfanView, maar mag ook een ander grafisch programma zijn.
In bijgaande sketch werkt methode 1 goed (maar omslachtig).
Methode 2, waarbij ik naar een grafiek kopieer - levert een onjuist plaatje.
Wie kent een mooie methode om het clipboard AUTOMATISCH naar een grafisch programma te kopiëren. (bijvoorbeel IrfanView, maar mag ook een ander grafisch programma zijn.
Code:
Sub Export_Excelselectie_jpg()
'Macro om reeds geslecteerd bereik in Excel als jpg op te slaan
'Selecteer vooraf een bereik
'Activeer daarna deze macro om het geslecteerde bereik als jpg op te slan
Dim ws As Worksheet
Dim Rng As Range
Dim Chrt As Chart
Dim ExportPath As String
Dim filename As String
Set ws = ActiveSheet
'Set Rng = Sheets("Kwartierstaat").Range("A1:P91") 'Eerste blad van kwartierstaat, werkt goed
Set Rng = Selection '
'Geef bestandsnaam op (niet foolproof)
filename = InputBox("Bestandsnaam", "Geef bestandsnaam op zonder extensie")
ExportPath = "D:\_Temp\Screenshots" & "\" & filename & ".jpg"
'MsgBox ExportPath
'Methode 1
Rng.Copy 'Copy to clipboard, importeren in grafisch programma, levert een mooi plaatje op
'Methode 2
'Levert een verwrongen plaatje op
Set Chrt = ThisWorkbook.Charts.Add
Rng.CopyPicture xlScreen, xlBitmap
With Chrt
.Paste
.Export filename:=ExportPath, Filtername:="JPG"
End With
Application.DisplayAlerts = False
ActiveSheet.Delete 'remove chart
Application.DisplayAlerts = True
MsgBox "Screenshot is opgeslagen in map SCREENSHOTS)"
End Sub