online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon bokap1975 vom 21.08.2019, 10:27 Options

Makro beim Starten ausführen.

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 schreiben

Antwort 1 von Hajo_Zi vom 21.08.2019, 11:37 Options

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 vom 21.08.2019, 12:07 Options

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 vom 21.08.2019, 12:15 Options

Hallo Boris,

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

[b]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[/b]


Kopiere nachfolgenden Scripte in das VBA Projekt "DieseArbeitsmappe".

[b]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[/b]



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 vom 21.08.2019, 13:43 Options

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 vom 21.08.2019, 14:25 Options

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 vom 22.08.2019, 07:57 Options

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 vom 22.08.2019, 09:43 Options

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 vom 22.08.2019, 09:53 Options

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 vom 22.08.2019, 10:55 Options

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 vom 22.08.2019, 11:06 Options

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

[b]Application.CommandBars("Symbolleiste Exceldbeispiele").Enabled = True
Application.CommandBars("Symbolleiste Exceldbeispiele").Visible = True[/b]


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 vom 22.08.2019, 14:05 Options

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 vom 22.08.2019, 14:11 Options

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 vom 22.08.2019, 14:25 Options

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 vom 22.08.2019, 14:48 Options

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 vom 22.08.2019, 14:55 Options

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

Ähnliche Themen

Makro automatisch ausführen
Heinz28  15.03.2007 - 449 Hits - 3 Antworten

Makro über eine andere Tabelle starten
Tobe  01.07.2007 - 106 Hits - 7 Antworten

Makro auf mehreren Rechnern verwenden
chriskuf  04.07.2007 - 47 Hits - 4 Antworten

Makro soll beliebig viele Datensätze mit ausführen
Beatlefield  26.11.2007 - 101 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026