AW: Ein Beispiel
22.05.2014 14:20:26
Ewald
Hallo,
teste mal
Grafik markieren und dann Makro ausführen, in der Inputbox muß die Zelle mit dem Kommentar angegeben werden
Sub Grafik_in_Kommentar()
Dim myChart As Chart, myChartObject As ChartObject
Dim int_with As Integer, int_hight As Integer
Dim myrng As Range
Dim Anzahl
Anzahl = AnzDateien(ActiveWorkbook.Path)
Application.ScreenUpdating = False
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
int_with = Selection.Width - Selection.Width / 100 * 8
int_hight = Selection.Height - Selection.Height / 100 * 8
Set myChart = Charts.Add
Set myChartObject = ActiveChart.ChartObjects.Add(0, 0, int_with, int_hight)
With myChartObject.Chart
.Paste
.Export Filename:=ActiveWorkbook.Path & "\zwischenablage" & Anzahl & ".jpg", FilterName: _
="JPG", Interactive:=False
End With
Application.DisplayAlerts = False
myChart.Delete
Application.DisplayAlerts = True
Set myChart = Nothing
Set myChartObject = Nothing
Set myrng = Application.InputBox("Bitte Zelle mit Kommentar auswählen", Type:=8)
Application.GoTo myrng
With Selection
.ClearComments
.AddComment ("")
.Comment.Shape.Fill.UserPicture (ActiveWorkbook.Path & "\zwischenablage" & Anzahl & " _
.jpg")
End With
Application.ScreenUpdating = True
End Sub
Private Function AnzDateien(ByVal strPfad As String) As Long
Dim objFSO As Object
Dim objOrdner As Object
On Error GoTo Fehler
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOrdner = objFSO.GetFolder(strPfad)
'Anzahl Dateien
AnzDateien = objOrdner.Files.Count
Set objFSO = Nothing
Set objOrdner = Nothing
Exit Function
Fehler:
Set objFSO = Nothing
Set objOrdner = Nothing
MsgBox "FehlerNr.: " & Err.Number & _
vbNewLine & vbNewLine & _
"Beschreibung: " & Err.Description, _
vbCritical, "Fehler:"
End
End Function
Gruß Ewald