HERBERS Excel-Forum - das Archiv
Sub auto_open(), Sub auto_close()
Uwe

Hallo zusammen!
Für Prozeduren, die im Zusammenhang mit dem Start, bzw. dem Schließen einer Datei ausgeführt werden sollen, nutze ich Sub auto_open() bzw. Sub auto_close() Soweit kein Thema...
Mehrfach bin ich bei meiner Recherche zu Grundwissen in VBA darüber "gestolpert", das diese Anweisungen veraltet sind. Neuere Ausdrücke finden sich aber nirgens.
Meine sicher leicht zu beantwortende Frage ist einfach die, ob eben auto_open(), bzw. auto_close() noch "up to date" ist...?
Kurze Info dazu wäre seeehr nett.
Besten Dank
Uwe

AW: Sub auto_open(), Sub auto_close()
{Boris}

Hi Uwe,
das ist nicht "up to" sondern "out of" date.
Klick mal im Projektexplorer auf "DieseArbeitsmappe" und guck Dir rechts dann mal die Comboboxen an.
Grüße Boris
AW: Sub auto_open(), Sub auto_close()
Uwe

Hey Boris,
... rechts dann mal die Comboxen? Was meinst Du? Wo find ich diese Angaben? Wäre nett, so Du mir vielleicht direkt die derzeit gebräuchlichen Anweisungen beschreibst, nennst...
Projektexplorer... "Diese Arbeitsmape" ist hingegen klar.
Sorry für die vielleicht dumme Frage.
Uwe
AW: Sub auto_open(), Sub auto_close()
{Boris}

Hi Uwe,
Userbild
Grüße Boris
AW: Sub auto_open(), Sub auto_close()
Rudi

Hallo,
über dem Codefenster.
Links: Objekte, rechts: Ereignisse
Gruß
Rudi
Sorry aber...
Uwe

Hallo Boris, hallo Rudi,
über dem Codefenster steht doch nur "Allgemein" oder halt "Woorkbook"!!!
Seid doch bitte so gut und nennt mir die Anweisung...
Mmmhhh...
Uwe
Objekte und Ereignisse
{Boris}

Hi Uwe,
Workbook ist das Objekt - und wenn Du es auswählst, wird auch schon die Rumpfprozedur des Standardereignisses für dieses Objekt erzeugt: Workbook_Open
Und jetzt kannst Du Dir in der linken Box noch alle anderen zur Verfügung stehenden Ereignisse anschauen.
Grüße Boris
Natürlich in der RECHTEN Box...oT
{Boris}

....
@ {Boris}: links ist aber...
Jens

Hi
...da, wo der Daumen rechts ist ;o)
Gruß Jens
AW: @ {Boris}: links ist aber...
Uwe

Hey Jens,
ja, ja doch...
wenn andere klüger sind als wir,
macht das selten nur Pläsier,
doch wenn sie dümmer,
erfreut`s fast immer
Uwe
AW: Objekte und Ereignisse
Uwe

Hallo Boris!
JETZT hab ich`s verstanden. Einmal mehr stelle ich fest, das ich mich durchaus - mit ein wenig Hilfe - immer mehr durch VBA durchwurschtel. Nein, mal im Ernst. Schritt für Schritt, wenn mitunter auch nur zentimeterweise komme ich meinem Ziel näher...
Schon mal Dank dafür.
Die aktuelle Anweisung lautet somit also Workbook_open() O.k. o.k.
Uwe
AW: Sorry aber...
Jens

Hallo
Wähle dort "Workbook" aus, und in der rechten Auswahlliste gibt es dann die verschiedenen Ereignisse, die Du benutzen kannst (z.B. Open und BeforeClose).
Gruß Jens
AW: Sorry aber...
Rudi

Hallo,
über dem Codefenster steht doch nur "Allgemein" oder halt "Workbook"

Richtig. Wähle 'Workbook' und klappe die rechte Combobox auf.
Gruß
Rudi
AW: Sorry aber...
Uwe

Hallo Rudi!
Vielen Dank für Eure Hilfe.
Gruß
Uwe
AW: Sorry aber...
Uwe

Hallo Rudi,
gerade eben habe ich denn mal meine Datei flugs "modernisiert". Funktioniert aber noch nicht ganz so wie gewünscht. Wie beschrieben habe ich bisher mit der Anweisung Sub auto_open() gearbeitet. Hierin gabs die Anweisung:
Dim AktiveMenüLeiste As Object, Werkzeuge As Object, Befehl As Object, MB As Object
Rem On Error Resume Next
Set AktiveMenüLeiste = CommandBars.ActiveMenuBar
Set Werkzeuge = AktiveMenüLeiste.Controls.Add(Type:=msoControlPopup, Temporary:=True)
Werkzeuge.Caption = "Lohndatei"
Set Befehl = Werkzeuge.Controls.Add(Type:=msoControlButton, ID:=1)
With Befehl
.Caption = "Monatsabschluss"
.OnAction = ""
End With
Soweit so guuut. Meinen Code habe ich nun unter Workbook_open() verschoben. Hier gibt`s nunmehr aber in der Zeile
Set AktiveMenüLeiste = CommandBars.ActiveMenuBar
Streß. Liegt das daran, das "Diese Arbeitsmappe" natürlich nur "private" Module kennt? Wie schreibe ich meine Anweisung um, damit ich auch mit Code unter "Diese Arbeitsmappe" einen eigenen Menüpunkt zur Verfügung habe?
Besten Dank für Deine Hilfe.
Gruß
Uwe
Application.Commandbars(...) owT
Rudi

AW: Application.Commandbars(...) owT
Uwe

Hallo Rudi,
was meinst du mit Application.Commandbars(...) owT?
Sorry, aber einen Text zu Deinem Betreff hattest nicht geschrieben...
Uwe
AW: Application.Commandbars(...) owT
Rudi

Hallo,
der Betreff ist die Antwort.
In Klassenmodulen ist Application. erforderlich, wenn man die Commandbars-Auflistung ansprechen will.
Set AktiveMenüLeiste = Application.CommandBars.ActiveMenuBar
Gruß
Rudi
AW: Application.Commandbars(...) owT
Uwe

Hallo Rudi!
Tja, "wer lesen kann, ist klar im Vorteil". Meine selbstverständlich mich. Wird Zeit das ich für heute Feierabend mach.
Vielen Dank für Deine Mühe.
Jetzt sollte es funktionieren.
Uwe