Microsoft Excel

Herbers Excel/VBA-Archiv

klassenmodul??

Betrifft: klassenmodul?? von: Andy
Geschrieben am: 23.08.2004 14:19:24

Hallo! Ich habe probleme beim Einfügen des unten stehenden Codes. Ich weiß dass dieser Code richtig ist und irgendwie in ein Klassenmodul muss. Hab auch dort reinkopiert.. wenn ich aber die einzelschritte testen will beept es nur. teste ich "

Private Sub Workbook_Open()" in einem Modul funtioniert es. Muss ich auch den Code des/ der Makros in das Klassenmodul kopiere, auf welches der Button verweist? Der Code soll bezwecken, dass beim Laden des Addins ein Button in der StandardSymbolleiste erscheint.
Damit soll das eigentliche Makro gestartet werden. Beim Schließen der Mappe/ bzw. deaktivieren des Addins soll der Button verschwinden. Danke an die Helfer und nochmals an Hans W. Herber.

ClassModule: DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Standard") _
.Controls("LDiagramm").Delete
On Error GoTo 0
End Sub


Private Sub Workbook_Open()
Dim oBar As CommandBar
Dim oBtn As CommandBarButton
Set oBar = Application.CommandBars("Standard")
On Error Resume Next
oBar.Controls("LDiagramm").Delete
On Error GoTo 0
Set oBtn = oBar.Controls.Add
With oBtn
    .Caption = "LDiagramm"
    .Style = msoButtonIcon
    .FaceId = 361
    .OnAction = "Gesamt"
End With
End Sub


StandardModule: Modul

Gruß
Andy
  


Betrifft: AW: klassenmodul?? von: Ulf
Geschrieben am: 23.08.2004 14:23:15

In ein Standardmodul:

Sub Gesamt()

'dein Code....

End Sub


Ulf


  


Betrifft: AW: klassenmodul?? von: Andy
Geschrieben am: 23.08.2004 14:30:34

muss dann die zeile classmodule: dieseArbeitsmappe auch im Klassenmodul stehen?
wenn das Makro "Gesamt" im Modul1 steht, muss es dann heißen: .OnAction="Modul1, Gesamt" oder einfach so, wie es schon dort steht?

Gruß
Andy


  


Betrifft: AW: klassenmodul?? von: Ulf
Geschrieben am: 23.08.2004 14:33:00

Sowas läßt sich durch ausprobieren leicht selbst herausfinden.

.OnAction= "Gesamt"

Ulf


  


Betrifft: AW: klassenmodul?? von: Klaus Schubert
Geschrieben am: 23.08.2004 14:40:05

Hallo Andy,
unter VBA oben links im Projektfenster "DieseArbeitsmappe" doppelklicken und dann folgenden Code ins rechte Codefenster (ohne "ClassModule: DieseArbeitsmappe" . Das besagt nur , das der Code eben in "DieseArbeitsmappe" soll!):

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Standard") _
.Controls("LDiagramm").Delete
On Error GoTo 0
End Sub
Private Sub Workbook_Open()
Dim oBar As CommandBar
Dim oBtn As CommandBarButton
Set oBar = Application.CommandBars("Standard")
On Error Resume Next
oBar.Controls("LDiagramm").Delete
On Error GoTo 0
Set oBtn = oBar.Controls.Add
With oBtn
    .Caption = "LDiagramm"
    .Style = msoButtonIcon
    .FaceId = 361
    .OnAction = "Gesamt"
End With
End Sub



Unter .OnAction = "Gesamt" wird dein normales Modul aufgerufen, welches dann

Sub Gesamt()
...
End Sub


heißen muss. Dieser Code soll aber in ein normales Modul !!!

Gruß Klaus


  


Betrifft: AW: klassenmodul?? von: Andy
Geschrieben am: 23.08.2004 14:48:54

Hallo Klaus!
Vielen Vielen Dank für diesen Tipp!! Es funtioniert. Super!
Gruß
Andy


 

Beiträge aus den Excel-Beispielen zum Thema "klassenmodul??"