Das mit dem kopieren einer Vorlage war im Grunde ein guter Hinweis; jedoch eine gespeicherte Diagrammvorlage hält leider keinen Code in sich. Das geht also nur mit einem Diagramm, welches sich auch in dem Workbook befindet.
- Diagramm in der Mappe erstellen
- Diagramm das Makro verpassen
- Diagramm einen Codename geben (z.B. tplChart)
- Diagramm Property Visible auf xlSheetHidden setzen
Und dann kann man so damit umgehen:
Option Explicit
Sub Test()
Dim objNewChart As Excel.Chart
'Erstellen
Set objNewChart = CreateChart("Blabla")
'objNewChart enthält die Makros von seiner Vorlage
'...
' 'ODER:
' 'Erstellen, Alternative:
' If Not TryCreateChart("Blabla", objNewChart) Then
' Call MsgBox("Fehler xyz blabla usw.", vbCritical)
' Exit Sub
' End If
'
' 'objNewChart enthält die Makros von seiner Vorlage
' '...
End Sub
Public Function TryCreateChart(Name As String, ByRef Chart As Excel.Chart) As Boolean
On Error Resume Next
Set Chart = CreateChart(Name)
TryCreateChart = Not Chart Is Nothing
End Function
Public Function CreateChart(Name As String) As Excel.Chart
On Error GoTo SafeExit
Application.ScreenUpdating = False
tplChart.Visible = xlSheetVisible
Call tplChart.Copy(Before:=tplChart)
Set CreateChart = tplChart.Previous
CreateChart.Name = Name
SafeExit:
tplChart.Visible = xlSheetHidden
Application.ScreenUpdating = True
If Not CreateChart Is Nothing Then
If Err.Number <> 0 And CreateChart.Name <> Name Then
Application.DisplayAlerts = False
Call CreateChart.Delete
Application.DisplayAlerts = True
Call Err.Raise(Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext)
End If
End If
End Function
Wo liegt jetzt also das Problem?
Grüße
|