Ausführung von VBA nach geschützter Ansicht

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

Betrifft: Ausführung von VBA nach geschützter Ansicht
von: Steffen
Geschrieben am: 27.11.2015 11:26:26

Hallo zusammen,
öffne ich eine Excel-Arbeitsmappe mit VBA-Code erscheint die Meldung hinsichtlich der geschützten Ansicht. Der beim Öffnen auszuführende VBA-Code schlägt nach dem Drücken des Buttons "Bearbeiten aktivieren" mit einem Laufzeitfehler 91 fehl. Der VBA-Code ist für Testzwecke einfach gehalten:

Private Sub workbook_open()
 MsgBox ActiveWorkbook.ActiveSheet.Name
End Sub
Lösen lässt sich dies, wenn die Excel-Datei auf einem vertrauenswürdigen Speicherort liegt oder erneut geöffnet wird. Dann wird der Name korrekt und ohne Fehler angezeigt. Da ich keinen Einfluss habe, wohin die eigentliche Excel-Datei bei den Nutzern gespeichert wird, wäre ich an einer generellen Lösung interessiert. Hat da jemand eine Idee?
Beste Grüße
Steffen

Bild

Betrifft: AW: Ausführung von VBA nach geschützter Ansicht
von: EtoPHG
Geschrieben am: 30.11.2015 09:33:21
Hallo Steffen,
Zitat: Da ich keinen Einfluss habe, wohin die eigentliche Excel-Datei bei den Nutzern gespeichert wird, wäre ich an einer generellen Lösung interessiert.
Die gibt es nicht! Es liegt an den Möglichkeiten und in der Verantwortung eines jede Benutzers (oder Administrator der Computer-Clients), der deine Excel-Datei bekommt/öffnen kann, wie er die Sicherheitseinstellungen auf seinem Computer einstellt. Darum kannst du von aussen, oder mit VBA Code oder mit was auch immer für Versuchen, nicht Erwirken, dass deinen Dateien und/oder Codes einfach Mir nichts Dir nichts vertraut wird!
Gruess Hansueli

Bild

Betrifft: AW: Ausführung von VBA nach geschützter Ansicht
von: Steffen
Geschrieben am: 30.11.2015 12:09:13
Hallo Hansueli,
das ist natürlich korrekt. Mir ging es um die Vermeidung des Laufzeitfehlers. Ich bin nun so vorgegangen, dass der VBA-Code im geschützten Modus beendet wird, wobei ich noch einen Button zum manuellen Starten einblende:

Private Sub workbook_open()
  ActiveSheet.Shapes("Button 1").Visible = False
  If Application.ProtectedViewWindows.Count > 0 Then
    ActiveSheet.Shapes("Button 1").Visible = True
    Exit Sub
  End If
  mystart
End Sub

Sub mystart()
  ActiveSheet.Shapes("Button 1").Visible = False
  MsgBox ActiveWorkbook.ActiveSheet.Name
End Sub
Der Button ist mit dem VBA-Code mystart verknüpft.
Viele Grüße
Steffen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Ausführung von VBA nach geschützter Ansicht"