Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Werkzeug
BildScreenshot zu Werkzeug Werkzeug-Seite mit Beispielarbeitsmappe aufrufen

Sub auto_open(), Sub auto_close() | Herbers Excel-Forum


Betrifft: Sub auto_open(), Sub auto_close() von: Uwe Siebers
Geschrieben am: 11.12.2009 10:16:56

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

  

Betrifft: AW: Sub auto_open(), Sub auto_close() von: {Boris}
Geschrieben am: 11.12.2009 10:18:49

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


  

Betrifft: AW: Sub auto_open(), Sub auto_close() von: Uwe Siebers
Geschrieben am: 11.12.2009 10:50:03

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


  

Betrifft: AW: Sub auto_open(), Sub auto_close() von: {Boris}
Geschrieben am: 11.12.2009 10:56:57

Hi Uwe,



Grüße Boris


  

Betrifft: AW: Sub auto_open(), Sub auto_close() von: Rudi Maintaire
Geschrieben am: 11.12.2009 10:58:49

Hallo,
über dem Codefenster.
Links: Objekte, rechts: Ereignisse

Gruß
Rudi


  

Betrifft: Sorry aber... von: Uwe Siebers
Geschrieben am: 11.12.2009 11:09:57

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


  

Betrifft: Objekte und Ereignisse von: {Boris}
Geschrieben am: 11.12.2009 11:11:48

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


  

Betrifft: Natürlich in der RECHTEN Box...oT von: {Boris}
Geschrieben am: 11.12.2009 11:12:46

....


  

Betrifft: @ {Boris}: links ist aber... von: Jens
Geschrieben am: 11.12.2009 11:14:21

Hi

...da, wo der Daumen rechts ist ;o)

Gruß Jens


  

Betrifft: AW: @ {Boris}: links ist aber... von: Uwe Siebers
Geschrieben am: 11.12.2009 11:39:21

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


  

Betrifft: AW: Objekte und Ereignisse von: Uwe Siebers
Geschrieben am: 11.12.2009 11:37:56

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


  

Betrifft: AW: Sorry aber... von: Jens
Geschrieben am: 11.12.2009 11:12:40

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


  

Betrifft: AW: Sorry aber... von: Rudi Maintaire
Geschrieben am: 11.12.2009 11:13:12

Hallo,

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

Richtig. Wähle 'Workbook' und klappe die rechte Combobox auf.

Gruß
Rudi


  

Betrifft: AW: Sorry aber... von: Uwe Siebers
Geschrieben am: 11.12.2009 11:40:10

Hallo Rudi!

Vielen Dank für Eure Hilfe.

Gruß

Uwe


  

Betrifft: AW: Sorry aber... von: Uwe Siebers
Geschrieben am: 11.12.2009 12:24:25

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


  

Betrifft: Application.Commandbars(...) owT von: Rudi Maintaire
Geschrieben am: 11.12.2009 12:54:09




  

Betrifft: AW: Application.Commandbars(...) owT von: Uwe Siebers
Geschrieben am: 11.12.2009 13:10:39

Hallo Rudi,

was meinst du mit Application.Commandbars(...) owT???

Sorry, aber einen Text zu Deinem Betreff hattest nicht geschrieben...

Uwe


  

Betrifft: AW: Application.Commandbars(...) owT von: Rudi Maintaire
Geschrieben am: 11.12.2009 13:27:25

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


  

Betrifft: AW: Application.Commandbars(...) owT von: Uwe Siebers
Geschrieben am: 11.12.2009 13:58:39

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