globale Boolesche Variable

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

Betrifft: globale Boolesche Variable
von: r2d2
Geschrieben am: 24.09.2015 09:07:09

Hallo,
um beim Öffnen einer Excel-Datei mit der Shift-Taste auch alle anderen Makros zu deaktivieren, möchte ich das ganze über eine globale Boolsche Variable steuern.
Hierzu setze ich den Wert im Workbook_Open event auf WAHR.
Nun frage ich vor dem Ausführen eines Makros jedesmal ab, ob die Variable WAHR ist.
Ist sie nicht WAHR (immer dann wenn jemand die Datei mit gedrückter Shift-Taste öffnet) werden die Makros nicht ausgeführt.
Nun kann der Wert aber auch FALSCH sein, wenn (wodurch auch immer) ein Makro auf einen Fehler läuft. In dem Fall würde danach kein weiteres Makro mehr ausführbar sein und man müsste die Datei neu öffnen.
Wie kann ich das nun wieder abfangen, das der Wert der Variablen durch so einen Fall eben nicht auf FALSCH gesetzt wird??
Danke.
Gruß
r2d2

Bild

Betrifft: AW: globale Boolesche Variable
von: ChrisL
Geschrieben am: 24.09.2015 09:47:59
Hi
Wenn das Makro auf einen Fehler läuft, solltest du eine ordentliche Fehlerbehandlung machen, so dass die Variable immer richtig gesetzt ist.
Mal googlen z.B.
http://www.online-excel.de/excel/singsel_vba.php?f=145
cu
Chris

Bild

Betrifft: AW: globale Boolesche Variable - Fehlerbehandlung
von: fcs
Geschrieben am: 24.09.2015 09:51:31
Hallo r2d2,
dann musst du in deine Makros eine Fehlerbehandlung einbauen, die einen kontrollierten Ausstieg aus dem Makro ermöglicht.
Generell solltest du natürlich versuchen, die möglichen Fehler gezielt abzufangen und entsprechend den weiteren Makro-Ablauf steuern.
Nachfolgend, die Basis für solch eine Fehlerbehandlung.
Gruß
Franz

Sub Test()
  If pbolAusfuehren = False Then Exit Sub
  On Error GoTo Fehler
  'hier der Code der ausgeführt werden soll
  
  
'Fehlerbehandlung
  Err.Clear 'räumt mitgecschleppte Fehler auf
Fehler:
  With Err
    Select Case .Number
      Case 0 'alles OK
      Case Else
        MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
          & "Mehr Glück beim nächsten mal"
    End Select
  End With
  
  'Hier dann ggf. noch bestimmte Einstellungen zurücksetzen und Variablen aufräumen
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
  End With
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "globale Boolesche Variable"