Hallo Till,
der Aufruf erfolgt aus einem AddInn.
Im Modul "DieseArbeitsmappe"
Option Explicit
'------------------------------
' letzte Änderung: 25.11.2011
'------------------------------
Private Sub Workbook_Open()
Menü_löschen
Menü_erstellen
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Menü_löschen
End Sub
im "Modul_Aufruf"
Option Explicit
'------------------------------
' letzte Änderung: 25.11.2011
'------------------------------
Dim clsAddMenu As New clsMenue
Sub Menü_erstellen()
clsAddMenu.AddMenuItem
End Sub
Sub Menü_löschen()
Set clsAddMenu = Nothing
On Error Resume Next
Application.VBE.CommandBars("Code Window"). _
Controls("Programmerstellung").Delete
End Sub
und im Klassenmodul "clsMenue"
Option Explicit
'------------------------------
' letzte Änderung: 12.1.2012
'------------------------------
Public WithEvents Menue As VBIDE.CommandBarEvents
Public Sub AddMenuItem()
Dim ctlTopMenu As CommandBarButton
Set ctlTopMenu = Application.VBE.CommandBars("Code Window"). _
Controls.Add(Type:=msoControlButton)
ctlTopMenu.BeginGroup = True
ctlTopMenu.Caption = "Programmerstellung"
ctlTopMenu.Enabled = True
Set Menue = Application.VBE.Events.CommandBarEvents(ctlTopMenu)
End Sub
Private Sub Menue_Click(ByVal cmdBar As Object, handled As Boolean, Cancel As Boolean)
Dim LW As String
Dim Pfad As String
Pfad = ThisWorkbook.Path & "\"
LW = Left(Pfad, 3)
ChDrive LW
ChDir Pfad
If Excel.Application.Workbooks.Count > 0 Then
Run "'Programmerstellung.xlsm'!Modul_Programmerstellung.Programmerstellung", ActiveWorkbook.Name
Else
MsgBox "Es ist keine bearbeitbare Excel-Datei geöffnet.", vbOKOnly, "Fehlermeldung"
End If
End Sub
|