Sub funktioniert bei Workbook_Open nicht
31.08.2006 08:37:58
alemyson
dieses Forum ist meine letzte Rettung - ich habe nach etlichen Stunden aufgegeben.
Mein Problem: Ich möchte bei Start einer Arbeitsmappe eine zusätzliche Symbolleiste einfügen, aus der heraus die Anwender diverse Makros starten können. Bei Deaktivieren der Datei soll diese Leiste wieder ausgeblendet, bei Schließen der Datei gelöscht werden.
Den Code, den ich zum Erstellen der Symbolleiste geschrieben habe, funktioniert in "Modul1" einwandfrei. Nur im Bereich "DieseArbeitsmappe" in der Sub "Workbook_Open" funktioniert er nicht. Weder beim Öffnen der Datei noch wenn ich ihn bei geöffneter Datei so starte.
Ich kann mir das mit meinen eingeschränkten VBA-Kenntnissen nur so erklären, dass dem Programm an der Stelle "DieseArbeitsmappe" einige "Grundkenntnisse" über Variablen, Objekte oder so fehlen, die es in einem Modul hat - aber das ist nur meine laienhafte Vermutung. Ihr seht wohl bereits an meiner Ausdrucksweise, dass ich ein extrem blutiger Anfänger und Gelegenheitsprogrammierer bin...
Hier der Code, um den es geht:
Private Sub Workbook_Activate()
On Error Resume Next
Application.CommandBars("Auswahl- und Druckfunktionen").Delete
Dim SB As CommandBar
On Error Resume Next
Set SB = CommandBars.Add("Auswahl- und Druckfunktionen")
With SB
.Visible = True
.Top = 300
.Left = 60
End With
Set Befehl = SB.Controls.Add(Type:=msoControlButton, ID:=2521)
With Befehl
.Style = msoButtonIconAndCaptionBelow
.Caption = "Markierte Zeile drucken"
.OnAction = "Aktuelle_Zeile_drucken"
End With
End Sub
Die ersten beiden Zeilen dienen nur dazu die Symbolleiste zu schließen, falls diese noch da sein sollte.
Wie gesagt, beim Öffnen der Datei tut sich gar nichts. Beim Starten nach dem Öffnen ebenso. Nehme ich das zweite "On Error Resume Next" raus, kommt die "Fehlermeldung '91'Objektvariable oder With-Blockvariable nicht festgelegt".
Warum? Bitte helft mir!!!
Gruß
Dirk