Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
176to180
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
176to180
176to180
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro aus Makro aufrufen

Makro aus Makro aufrufen
11.11.2002 10:56:52
Milhouse
Ich würde gerne per auto_open verschiedene Makros beim Tabellenstart aufrufen. Leider habe ich nur wenig Ahnung von VBA und weiß auch nicht, ob der Quellcode besser unter den "Excel Objekten" oder bei den "Modulen" aufgehoben ist.

Hier mal das Listing. Allerdings funktioniert es so derzeit noch nicht (also die Einzelmakros schon):

Sub auto_open()

Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZelleNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!KontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!KontextLoeschNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileKontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileKontextLoeschNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!SpalteKontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!SpalteKontextLoeschNein"

End Sub

Sub ZelleNein()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zellen").Enabled = False
End Sub

Sub ZeileNein()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zeilen").Enabled = False
End Sub

Sub KontextEinfNein()
CommandBars("Cell").Controls(5).Enabled = False
End Sub

Sub KontextLöschNein()
CommandBars("Cell").Controls(6).Enabled = False
End Sub

Sub ZeileKontextEinfNein()
CommandBars("Row").Controls(5).Enabled = False
End Sub

Sub SpalteKontextEinfNein()
CommandBars("Column").Controls(5).Enabled = False
End Sub

Sub ZeileKontextLöschNein()
CommandBars("Row").Controls(6).Enabled = False
End Sub

Sub SpalteKontextLöschNein()
CommandBars("Column").Controls(6).Enabled = False
End Sub


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro aus Makro aufrufen
11.11.2002 11:00:55
Hajo_Zi
Hallo Milhouse

schreibe nur Deinen Makronamen hin. Ich gehe mal davon aus die Makros sind in der gleichen Datei??

Gruß Hajo

Re: Makro aus Makro aufrufen
11.11.2002 11:03:27
Bjoern
Hei Mil,

per alt + F11 die Entwicklerumgebung aufrufen, im projektexplorer Doppelklick auf "diese Arbeitsmappe" (This WOrkbook, bei engl. version), Im Auwahlfeld "(Allgemein)" Workbook auswählen. Jetzt sollte in der nebenstehenden Auswahlfläche schon automatisch der Befehl "Open" stehen und im Feld unten der Code

Private Sub Workbook_Open()

End Sub

generiert worden sein. Dorthin Deinen VBA-Code setzen.

Gruß

Björn

Re: Makro aus Makro aufrufen
11.11.2002 11:08:37
Ralf Sögel
Die Makronamen enthalten Zeichen, die darin nicht erlaubt sind!
Anzeige
Re: Makro aus Makro aufrufen
11.11.2002 11:13:46
Hajo_Zi
Hallo Ralf

meinst Du das ö. Dies sollte man nicht verwenden, aber es führt zu keinem Fehler.

Gruuß Hajo

Re: Makro aus Makro aufrufen
11.11.2002 11:21:06
Björn
klar, ich wollte auch nicht sagen, daß das ganze Script von Mil in

Private Sub Workbook_open()

End Sub

eingeschlossen werden soll, sondern nur der eigentliche Kerncode. Die "Aufrufbefehle"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZelleNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!KontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!KontextLoeschNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileKontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!ZeileKontextLoeschNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!SpalteKontextEinfNein"
Application.Run Macro:="Aufgabenplanung_2002_ab_0802-test.xls!SpalteKontextLoeschNein"

fallen natürlich weg. Also ausführlich:

Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zellen").Enabled = False
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zeilen").Enabled = False
CommandBars("Cell").Controls(5).Enabled = False
CommandBars("Cell").Controls(6).Enabled = False
CommandBars("Row").Controls(5).Enabled = False
CommandBars("Column").Controls(5).Enabled = False
CommandBars("Row").Controls(6).Enabled = False
CommandBars("Column").Controls(6).Enabled = False
End Sub

Oder wie schon Hajo geschrieben hat:

Private Sub Workbook_open()
ZelleNein
KontextEinfNein
KontextLöschNein
ZeileKontextEinfNein
SpalteKontextEinfNein
ZeileKontextLöschNein
SpalteKontextLöschNein
End sub()

und dann den VBA-Code in einem Modul desselben Workbooks.

Übrigens ist das Ausblenden von Menüleisten immer etwas problematisch. Ich würde es lieber lassen. Jedenfalls müßten die Grundeinstellungen beim Schließen der Arbeitsmappe wieder zurückgesetzt werden.

Gruß

Björn



Anzeige
Re: Makro aus Makro aufrufen
11.11.2002 11:21:40
Milhouse
Welche Zeichen sind das denn?

Bekomme nämlich immer nen Laufzeitfehler 1004.

"Excel kann das Makro 'xxx' nicht finden.

Re: Makro aus Makro aufrufen
11.11.2002 11:34:25
Milhouse
Okay, herzlichen Dank.
Der Aufruf funktioniert jetzt wunderbar.

Leider meckert er dafür 2 von den Makros an, die am Freitag schon problemlos funktionierten.
Kann mir da vielleicht noch jemand sagen, wo der Fehler liegt?

Sub ZelleNein()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zellen").Enabled = False
End Sub

Sub ZeileNein()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Einfügen").Controls("Zeilen").Enabled = False
End Sub

Fehlermeldung:

Laufzeitfehler 5:

Unzulässiger Prozeduraufruf oder ungültiges Argument

Anzeige
Re: Makro aus Makro aufrufen
11.11.2002 11:43:18
Ralf Sögel
Es sind nur Buchstaben, Zahlen und der Unterstrich erlaubt, max. 80 Zeichen und das erste Zeichen muss ein Buchstabe sein.
Re: Makro aus Makro aufrufen
11.11.2002 12:00:32
Björn
ganz einfach:

Application.CommandBars("Worksheet Menu Bar").Controls("Einfügen").Controls("Zeilen").Enabled = False

Gruß

Björn

P.S.:
Ich würde das nicht machen. Jedenfalls beim Schließen der Mappe wieder gegenläufige Befehle programmieren. Für mich als Nutzer ist es extrem ärgerlich, wenn andere an meinen Grundeinstellungen "herumwursteln". Besser das Tabellenblatt schützen oder verstecken, oder was auch immer....

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige