Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro beim Starten ausführen.





Frage

Hallo support, hallo du. ich habe unten zwei makros aufgeführt, die ich aus einer Beispieldatei habe. Schön wäre es wenn das Makro ausblenden beim Start der Datei automatisch ausgeführt würde und beim beenden automatisch das Makro einblenden. Bislang über CommandButton. Die Makros stehen unter Module falls das irgend was zu sagen hat. Viele Grüße boris Sub Symbolleisten_einblenden() Dim Menue As CommandBar 'Alle Symbol- und Menüleisten einblenden und Symbolleistenkontextmenü, 'erscheint bei Rechtsklick, aktivieren On Error Resume Next For Each Menue In Application.CommandBars Menue.Enabled = True Menue.Protection = msoBarYesCustomize Menue.Protection = msoBarYesChangeVisible Next On Error GoTo 0 With Application .DisplayFormulaBar = True 'SymLeiste "Standard" sichtbar .DisplayStatusBar = True 'Statuszeile sichtbar .CommandBars("Toolbar List").Enabled = True ' Funktion "Anpassen" zum Symbolleisten ' ändern deaktivieren End With With ActiveWindow .DisplayHeadings = True 'Zeilen/Spaltenbeschriftung (z Bsp "A1") sichtbar .DisplayHorizontalScrollBar = True 'horizontaler Scrollbalken sichtbar .DisplayVerticalScrollBar = True 'vertikaler Scrollbalken sichtbar .DisplayWorkbookTabs = True 'Blattnamenregister sichtbar End With End Sub Sub Symbolleisten_ausblenden() Dim Menue As CommandBar 'Alle Symbol- und Menüleisten ausblenden und Symbolleistenkontextmenü, 'erscheint bei Rechtsklick, deaktivieren On Error Resume Next For Each Menue In Application.CommandBars Menue.Enabled = False Menue.Protection = msoBarNoCustomize Menue.Protection = msoBarNoChangeVisible Next On Error GoTo 0 'Neu erstellte Symbolleiste einblenden Application.CommandBars("Symbolleiste Exceldbeispiele").Enabled = True Application.CommandBars("Symbolleiste Exceldbeispiele").Visible = True With Application .DisplayFormulaBar = False 'SymLeiste "Standard" sichtbar .DisplayStatusBar = False 'Statuszeile sichtbar .CommandBars("Toolbar List").Enabled = False ' Funktion "Anpassen" zum Symbolleisten ' ändern aktivieren End With With ActiveWindow .DisplayHeadings = False 'Zeilen/Spaltenbeschriftung (z Bsp "A1") sichtbar .DisplayHorizontalScrollBar = False 'horizontaler Scrollbalken sichtbar .DisplayVerticalScrollBar = False 'vertikaler Scrollbalken sichtbar .DisplayWorkbookTabs = False 'Blattnamenregister sichtbar End With End Sub

Antwort 1 von Hajo_Zi

Hallo Boris,

schreibe die Makros unter DieseArbeitsmappe unter
Private Sub Workbook_Open()

End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Gruß Hjao

Antwort 2 von bokap1975

Hi Hjao;

Unter dieseArbeitsmappe stehen bereits folgende Makros die sich irgendwie nicht mit den andern beiden vertragen wenn ich den auch Prvate Sub Workbook_....... nenne. Kann man die irgendwie aneinanderhängen oder kombinieren sodaß beide funktionieren.


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Begrüßung").Visible = True
Worksheets("Tabelle3").Visible = False
Worksheets("Tabelle2").Visible = False
Worksheets("Deckblatt (2)").Visible = False
Worksheets("Deckblatt").Visible = False
End Sub

Sub start()
Worksheets("Tabelle3").Visible = True
Worksheets("Tabelle2").Visible = True
Worksheets("Deckblatt (2)").Visible = True
Worksheets("Deckblatt").Visible = True
Worksheets("Begrüßung").Visible = False
End Sub

Antwort 3 von coros

Hallo Boris,

lösche zunächst das Script inm VBA-Projekt "Diese Arbeitsmappe":

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Begrüßung").Visible = True
Worksheets("Tabelle3").Visible = False
Worksheets("Tabelle2").Visible = False
Worksheets("Deckblatt (2)").Visible = False
Worksheets("Deckblatt").Visible = False
End Sub


Kopiere nachfolgenden Scripte in das VBA Projekt "DieseArbeitsmappe".

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Symbolleisten_einblenden
Worksheets("Begrüßung").Visible = True
Worksheets("Tabelle3").Visible = False
Worksheets("Tabelle2").Visible = False
Worksheets("Deckblatt (2)").Visible = False
Worksheets("Deckblatt").Visible = False
End Sub

Private Sub Workbook_Open()
Symbolleisten_ausblenden
End Sub



MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von bokap1975

Hi Oliver,

dank dir - das hat funktioniert. Allerdings zeigt er mir beim öffnen der Datei einen Laufzeitfehler 5, ungültiger Prozeduraufruf oder ungültiges Argument. Wenn ich den Hinweis weg-klicke funktionierts aber trozdem.
???

Wäre natürlich schön wenn diese störende Fehlermeldung nicht kommen würde. Ansonsten ist auch nicht so tragisch.

Viele Grüße
boris

Antwort 5 von coros

Hallo Boris,

wenn die Laufzeitfehlermeldung kommt betätige mal den Debuggen-Button. Danach wird Dir der Feehler angezeigt (fehlerhafte Zeile wird gelb markiert). Bei welchem Befehl bleibt das Makro hängen?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von bokap1975

Morgen Oliver, welch wunderschöner Sommermorgen. Werd gleich anfangen mir ne Arche zu bauen.

Zurück zum Fehler:-)
vor dem öffnen der eigentlichen Tabelle zeigt sich ja bei mir durch das o. g. Makro das "Begrüßung" Tabellenblatt. Das wird noch geöffnet und dann zeigt sich die Fehlermeldung. Allerdings ist der Debuggen - Button grau hinterlegt und lässt sich nicht drücken. Man kann nur auf Beenden gehen und dann läuft alles reibungslos. Die Makros ausblenden und einblenden stehen bei mir unter Module und werden ja durch deinen Code beim Start und Beenden automatisch ausgeführt. Zusätzlich habe ich noch zwei CommandButton im Tabellenblatt die ebenfalls auf diese Makros einblenden/ausblenden verweisen. Hat das vielleicht damit zu tun.

Viele Grüße
Boris

Antwort 7 von coros

Hallo Boris,

wenn der Debuggen-Button grau ist, dann ist wahrscheinlich Dein VBA-Projekt Passwort geschützt. Habe ich recht mit meiner Vermutung? Wenn ja, dann hebe den Blattschutz im VBA-Editor auf, speichere die Datei, schließe die Datei und öffne sie wieder. Dann sollte bei auftauchen des Fehlers der Button anwählbar sein.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von coros

Hi,

ich nochmal. Manchmal bin ich aber leicht oder auch schwer geistig umnachtet. ,-)
Ich meine natürlich nicht den Blattschutz, sondern den VBA-Projektschutz unter "Extras => Eigenschaften von VBA-Projekt..." im VBA-Editor.


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von Bokap1975

Hi Oliver,

ja du hast recht, hatte die VBA-Anzeige Passwort geschützt damit da keiner rumhantieren kann.

Nun die Fehlermeldung betrifft das Makro "ausbleiben" wie folgt:

Application.CommandBars("Symbolleiste Exceldbeispiele").Enabled = True

Das war gelb hinterlegt:

Kann nur beim besten Willen überhaupt nichts damit anfangen.

Viele Grüße
Boris

Antwort 10 von coros

Hallo Boris,

eigentlich sollte diese Anweisung keinen Fehler erzeugen. Die Symbolleiste Excelbeispiele wird trotz der Fehlermeldung eingeblendet? Kann ich mir fast nicht vorstellen. Oder gibt es diese Symbolleiste gar nicht? Ich gehe mal davon aus, dass Du nicht über ein entsprechendes Script beim Starten von Excel diese Symbolleiste erzeugst. Wenn dem so ist, dann lösche die beiden Zeilen

Application.CommandBars("Symbolleiste Exceldbeispiele").Enabled = True
Application.CommandBars("Symbolleiste Exceldbeispiele").Visible = True


aus dem Makro heraus. Das sind Zeilen, die ich in meinen Makros verwende (das ist ja ein Makro, das Du aus einer meiner Beispieldateien hast) damit einen neue erstellte Symbolleiste eingeblendet wird, wenn alles andere ausgeblendet wird.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 11 von Bokap1975

Hi Oliver,

ja da gehtst Du richtig von aus denn - Ich weiß noch nicht mal was ein Script bei Excel ist. Also erstelle ich denke ich auch keins.

Ursprünglich waren diese beiden Makros aus einem beispeil von excelbeispiele.de. Hier wurden Sie allerdings mit einem Button ausgeführt. Der eine blendet die komplette Symbolleiste aus und der andere wieder ein. Dabei stand, dass sich diese Makros auch mit dem öffnen/schließen der Datei ausführen ließen.
Für mich war diese Lösung sehr hilfreich, da Anwender meiner Tabelle zwar sämtliche vorgegebenen Makros ausführen können und zwischen zig Optionsbutten wählen können aber sonst nichts zerstören oder einsehen können. (VBA ist ja mit Kennwort belegt):

Die Symbolleiste Exelbeispiele ist (denke ich) die leere Symbolleiste also alles ausgeblendet. Und das klappt trotz fehlermeldung.

Viele Grüße
Boris

Antwort 12 von coros

Hallo Boris,

was das Makro macht weiß ich, Wie bereits geschrieben ist das Makro von mir (ich bin der Betreiber von www.excelbeispiuele.de). Meine Frage war nur ob Du auch ein Makro oder auch Script genannt ausführst, dass eine Symbolleiste mit dem namen "Symbolleiste Excelbeispiele" erzeugt. Wenn nicht, kannst Du die beiden Befehlszeilen herauslöschen.
Das Makro was Du hier aufgeführt hast, hat nichts mit derm Erzeugen einer Symbolleiste zu tun. Das wäre dann ein separates Makro.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 13 von Bokap1975

Hi Oliver
noch kurz zur Info

ich habe beide makros gerade nochmals mit nem CommandButton ausgeführt. Das Makro einblenden (also das, das mir die Ursprüngliche Symbolleiste wieder anzeigt) funktioniert reibungslos.

Das Makro ausblenden leider nicht. Hier kommt auch die Fehlermeldung wenn ich es mit Button ausführe aber trotzdem wird die Urspüngliche Symbolleiste ersetzt oder eben ausgeblendet.

Hoffe, das ist hilfreich

Grüße
boris

Antwort 14 von Bokap1975

Sorry Oliver,

hatte das irgendwie überlesen. Glückwunsch zu Deiner Seite. Ja da ist das Beispiel her. Dann hab ich ja direkt vom richtigen die Beratung. Danke nochmal dafür.

also ein solches Makro was eine Symbolleiste erzeugt habe ich nicht.
Werde es sofort ausprobieren.

grüße
Boris

Antwort 15 von Bokap1975

DANKE DANKE DANKE

Jetzt läufts. Hab die beiden zeilen gelöscht. Keine fehrlermeldung - Alles perfekt.

Grüße an Oliver

ein HOCH an Excelbeispiele.de