Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit "Grafik

Problem mit "Grafik als png speichern"
21.02.2003 13:54:56
Kai
Moin!
Ich habe vor, einen bestimmten Zell-Bereich meines Arbeitsblatts per Makro als *.PNG-Datei zu speichern. Da dies bei Excel ja bekanntlich nicht so einfach ist wie z.B. das Speichern als HTML-Datei, habe ich lange gesucht und auch ein mehr oder weniger brauchbares Makro gefunden.
Vielleicht könnt ihr es euch ja mal ansehen und mir erklären, wie ich folgende Sachen manuell verändern kann:

1.: ich möchte nicht nach dem Bereich gefragt werden, der als png gespeichert werden soll, dieser Bereich soll fest bleiben (z.B. immer A5:A30)!

2.: Pfad und Dateiname unter denen das png-Bild gespeichert wird, sollen auch im Voraus eingestellt werden. (z.B. "C:\Windows\Desktop\Superbild.png")

unten steht das Makro, das ich gefunden habe: (nicht erschrecken)

Wär klasse, wenn mir jemand helfen könnte.

Gruß
Kai


Dim container As Chart
Dim containerbok As Workbook
Dim Obnavn As String
Dim Sourcebok As Workbook

Function SelectArea() As String
Dim Internrange As Range
On Error GoTo Brutt
Set Internrange = Application.InputBox("Select " _
& "range to be photographed:", "Picture Selection", _
Selection.AddressLocal, Type:=8)
SelectArea = Internrange.Address
Exit Function
Brutt:
SelectArea = "A1"
End Function

Function sShortname(ByVal Orrginal As String) As String
Dim iii As Integer
sShortname = ""
For iii = 1 To Len(Orrginal)
If Mid(Orrginal, iii, 1) <> " " Then _
sShortname = sShortname & Mid(Orrginal, iii, 1)
Next
End Function

Private Sub ImageContainer_init()
Workbooks.Add (1)
ActiveSheet.Name = "pngcontainer"
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Worksheets(1).Range("A1")
ActiveChart.Location Where:=xlLocationAsObject, _
Name:="pngcontainer"
ActiveChart.ChartArea.ClearContents
Set containerbok = ActiveWorkbook
Set container = ActiveChart
End Sub

Sub MakeAndSizeChart(ih As Integer, iv As Integer)
Dim Hincrease As Single
Dim Vincrease As Single
Obnavn = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
Hincrease = ih / ActiveChart.ChartArea.Height
ActiveSheet.Shapes(Obnavn).ScaleHeight Hincrease, _
msoFalse, msoScaleFromTopLeft
Vincrease = iv / ActiveChart.ChartArea.Width
ActiveSheet.Shapes(Obnavn).ScaleWidth Vincrease, _
msoFalse, msoScaleFromTopLeft
End Sub

Public Sub png_Snapshot()
Dim varReturn As Variant
Dim MyAddress As String
Dim SaveName As Variant
Dim MySuggest As String
Dim Hi As Integer
Dim Wi As Integer
Dim Suffiks As Long
Set Sourcebok = ActiveWorkbook
MySuggest = sShortname(ActiveSheet.Name)
ImageContainer_init
Sourcebok.Activate
MyAddress = SelectArea
If MyAddress <> "A1" Then
SaveName = Application.GetSaveAsFilename( _
InitialFileName:=MySuggest _
& ".png", fileFilter:="png Files (*.png), *.png")
Range(MyAddress).Select
Selection.CopyPicture Appearance:=xlScreen, _
Format:=xlBitmap
If SaveName = False Then
GoTo Avbryt
End If
If InStr(SaveName, ".") Then SaveName _
= Left(SaveName, InStr(SaveName, ".") - 1)
Selection.CopyPicture Appearance:=xlScreen, _
Format:=xlBitmap
Hi = Selection.Height + 4 'adjustment for gridlines
Wi = Selection.Width + 6 'adjustment for gridlines
containerbok.Activate
ActiveSheet.ChartObjects(1).Activate
MakeAndSizeChart ih:=Hi, iv:=Wi
ActiveChart.Paste
ActiveChart.Export Filename:=LCase(SaveName) & _
".png", FilterName:="png"
ActiveChart.Pictures(1).Delete
Sourcebok.Activate
End If
Avbryt:
On Error Resume Next
Application.StatusBar = False
containerbok.Saved = True
containerbok.Close
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Problem mit "Grafik als png speichern"
21.02.2003 19:45:27
andre

hallo kay,
änderungen sind mit ***** hervorgehoben, code einfach wieder in dein modul kopieren.

gruss andre

Re: Problem mit "Grafik als png speichern"
21.02.2003 19:45:30
andre

hallo kay,
änderungen sind mit ***** hervorgehoben, code einfach wieder in dein modul kopieren.

gruss andre

Re: Problem mit "Grafik als png speichern"
21.02.2003 21:32:33
Kai

Vielen Dank! Das ist echt super!

Leider funktioniert das aus irgend einem Grund nur in einem ganz neuen Dokument, das Einbinden in meine bestehende Tabelle bekomm ich noch nicht ganz hin.
Aber vielen Dank nochmal! Jetzt bin ich schon echt schlauer! :-)

Kai

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige