Makrosteuerung bei Excelstart

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makrosteuerung bei Excelstart
von: r2d2
Geschrieben am: 23.09.2015 14:38:22

Hallo,
wenn man eine Excel-Datei mit Shift öffnet, kann man den "Startcode" der unter "DieseArbeitsmappe" steht unterdrücken, alle anderen Makros in Modulen gehen aber (zumindest ist das bei mir so). Nun möchte ich, daß wenn jemand die Datei mit Shift öffnet, auch die anderen Makros nicht funktionieren.
Hierzu habe ich von Rudi folgenden Code bekommen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  CheckNameExists
  With Names("Makro")
    .Value = 0
    .Visible = False
  End With
End Sub
Private Sub Workbook_Open()
  CheckNameExists
  With Names("Makro")
    .Value = 1
    .Visible = False
  End With
End Sub
Sub CheckNameExists()
  Dim n As Name
  On Error Resume Next
  Set n = Names("Makro")
  On Error GoTo 0
  If n Is Nothing Then
    Set n = Me.Names.Add("Makro", 1)
  End If
End Sub
und im Modul dann
Sub makro1()
    If [Makro] = 1 Then
         MsgBox "makro1"
    End If
End Sub
Das funktioniert auch soweit, nur wenn man das Kreuzchen rechts oben drückt (Fenster schließen) und dann abbricht, ist der Wert auch 0 und die Makros gehen dann auch nicht mehr (was sie aber bei Abbruch weiter sollen).
Kann man das irgendwie abfangen?
Ich poste das extra, da beim anderen Post keine Reaktion mehr erfolgt.
Danke.
Gruß
r2d2

Bild

Betrifft: keine Chance. owT
von: Rudi Maintaire
Geschrieben am: 23.09.2015 15:43:19


Bild

Betrifft: AW: keine Chance. owT
von: r2d2
Geschrieben am: 23.09.2015 15:53:34
???

Bild

Betrifft: Wenn in diesem speziellen Fall ebenfalls ...
von: Luc:-?
Geschrieben am: 23.09.2015 17:10:20
…kein einziges Pgm fktionieren/normal durchlaufen soll, r2d2,
wirst du wohl im Wb_Open-Pgm eine globale Boolesche Variable setzen und die in jedem Pgm, das sonst noch laufen könnte, abfragen müssen. Alternativ könntest du natürlich auch ein SteuerPgm für alle diese Pgmm schreiben, das grdsätzlich zuerst aufgerufen wird, die Variable prüft und dann erst das jeweilige Pgm aufruft. Das musst du selbst, je nach Aufwand entscheiden. Auch Pgmm zum Einblenden von (Very)Hidden-Blättern könnten so unwirksam wdn.
Für in ZellFmln eingesetzte UDFs würde ich das aber nicht machen. Hier sollte das Ausblenden solcher Blätter ausreichen.
Gruß, Luc :-?

Besser informiert mit …

Bild

Betrifft: AW: Wenn in diesem speziellen Fall ebenfalls ...
von: r2d2
Geschrieben am: 24.09.2015 08:36:22
"wirst du wohl im Wb_Open-Pgm eine globale Boolesche Variable setzen und die in jedem Pgm, das sonst noch laufen könnte, abfragen müssen"
Ja, genau das möchte ich machen, weiss aber nicht wie.....
Gruß
r2d2

Bild

Betrifft: alles Mumpitz
von: Rudi Maintaire
Geschrieben am: 24.09.2015 10:04:25
Hallo,
wenn es dir doch darum geht, dass die Mappe nicht gespeichert werden kann:
Schreib-/Lesekennwort setzen und zur Verhinderung der Ausführung von Makros am Anfang jeder Sub:
If Thisworkbook.readonly then Exit Sub
Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Vorlage mit Makros"