Microsoft Excel

Herbers Excel/VBA-Archiv

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

bei OPEN macros vermeiden

Betrifft: bei OPEN macros vermeiden von: sachsenhessi
Geschrieben am: 11.02.2008 16:08:18

Hi Leute,

gibt es eine Möglichkeit in einem VBA-Makro bei WORKBOOKS.OPEN "xyz.xls" die Ausführung von Macros zu verhindern?
- Die VB-Sicherheitseinstellungen können nicht (?) genutzt werden, da bei "normaler" Ausführung der XLS-Datei die Macros laufen müssen.
- WORKBOOKS.OPEN mit ReadOnly-Flag fällt ebenfalls aus, da ich in die Datei schreiben muß.
Kennt jemand einen Trick, sinngemäß "nächste Datei ohne Macros öffnen" ??

Danke
Frank

  

Betrifft: AW: bei OPEN macros vermeiden von: Rudi Maintaire
Geschrieben am: 11.02.2008 16:18:02

Hallo,

Events aus
WB öffnen
Events wieder ein.

Gruß
Rudi

Eine Kuh macht Muh, viele Kühe machen Mühe


  

Betrifft: AW: bei OPEN macros vermeiden von: Christian
Geschrieben am: 11.02.2008 16:18:44

Servus,

mir fallen 2 Arten ein die du versuchen könntest es kommt jedoch darauf an was sich verändert wird, sprich soll für eine bestimmt benutzergruppe das Makro laufen oder wenn sich die Datei verändert.
zu1. Benutzergruppe.
Du könntest beim starten des Workbookopen den Benutzernamen abfragen und wenn der richtig ist dann es starten oder du machst eine kleine Userform wo man ein Passwort eingibt und du es überprüfen lässt ob das Passwort richtig ist und dadurch nur das Marko erst starten lässt.
zu 2. Datei wird verändert.
zum Beispiel liegt die Datei als xlt vor und du überprüfst den Dateinamen.
Falls dir diese Vorschläge etwas bringen und du hilfe für die implementierung brauchst melde dich einfach nochmal.
Ich hoffe ich habe dein Problem verstanden.

Gruß
Christian


  

Betrifft: AW: bei OPEN macros vermeiden von: Oberschlumpf
Geschrieben am: 11.02.2008 16:22:36

Hi Frank

Wie wärs mit dieser Idee (ungetestet):

In der eigentlichen Datei setzt du vor allen Makros in Workbooks.Open diesen Code:


For liIndex = 1 To Workbooks.Count
    If Workbooks(liIndex).Name = "DeineNeueDatei" Then Exit sub
Next


Dann erstellst du nur für dich eine Hilfsdatei, z Bsp "DeineNeueDatei.xls", mit der du in Zukunft die eigentliche Dateistartest.

"Deine" Datei enthält einfach nur diesen Code in Workbooks.Open:

Workbooks.Open "Pfad\dieEigentliche.Datei.xls"


Fertig.

Wenn du nun mit Hilfer der Hilfsdatei die eigentliche Datei öffnest, um die es geht, dann wird zuerst in der For/Next-Schleife danach gesucht, ob auch deine Hilfsdatei geöffnet ist.
Wenn Ja, dann wird kein weiter Code ausgeführt.

Öffnest du die eigentliche Datei, OHNE, dass du zuvor die Hilfsdatei offen hast, wird der Name der Hilfsdatei NICHT in der Schleife gefunden, und der nach der Schleife folgende Code wird ausgeführt.

Somit wird der Code also auch immer ausgeführt, wenn jemand anderer die Datei öffnet, da ja nur du die Hilfsdatei hast.

Hilft das?

Ciao
Thorsten


  

Betrifft: AW: bei OPEN macros vermeiden von: sachsenhessi
Geschrieben am: 11.02.2008 19:46:16

Danke,
Problem gelöst ;-)

application.EnableEvents
ist jetzt mein Freund.

Na ja, Wald, Bäüme und so....

Danke an alle
Frank