Supportnet / Forum / Tabellenkalkulation
Excel - Makroannahme erzwingen
Frage
Hallo Forum,
ich möchte erreichen, dass ein Excel-Blatt nur dann geöffnet werden kann, wenn das Ausführen der Makros akzeptiert wird.
Kann mir jemand helfen ?
Vielen Dank
Sylvie
Antwort 1 von coros
Hallo Sylvie,
das ist mit Excel eigenen Mitteln nicht möglich. Da muss man mit einen fremden Programm, z.B. Visual Basic 5.0 oder 6.0 nachhelfen, in dem man eine Exe- Datei erstellt, mit der die Exceldatei dann geöffnet wird. Bei Ausführen der Exe- Datei werden automatisch die Makros aktiviert. Wenn dann die Exceldatei noch mit einen Leseschutz versehen wird, kann man die Datei nur über die Exe- Datei und somit mit aktivierten Makros geöffnet werden.
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.
das ist mit Excel eigenen Mitteln nicht möglich. Da muss man mit einen fremden Programm, z.B. Visual Basic 5.0 oder 6.0 nachhelfen, in dem man eine Exe- Datei erstellt, mit der die Exceldatei dann geöffnet wird. Bei Ausführen der Exe- Datei werden automatisch die Makros aktiviert. Wenn dann die Exceldatei noch mit einen Leseschutz versehen wird, kann man die Datei nur über die Exe- Datei und somit mit aktivierten Makros geöffnet werden.
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 2 von JoeKe
Hallo Sylvie, Hallo Oliver,
ich habe doch noch eine Lösung dafür mit VBA gefunden.
Folgende Codes dazu in das VBA-Projekt "DieseArbeitsmappe":
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ThisWorkbook
.IsAddin = True
.Save
End With
End Sub
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = False
End Sub
Die Datei muss dann auf jeden Fall beim schließen gespeichert werden.
Wird die Datei dann ohne aktivierte Makros geöffnet, wird sie als AddIn geladen, das heißt ohne Tabellenblätter. Sie kann dann nur in der VBA-Umgebung bearbeitet werden, diese eventuell mit einem Passwort sichern.
Wird sie mit aktivierten Makros geöffnet, wird IsAddin auf False gesetzt und somit die Datei als normale Mappe geöffnet.
MfG
JöKe
Quelle:
Das Excel-VBA Codebook
Monika Weber,
Melanie Breden
ich habe doch noch eine Lösung dafür mit VBA gefunden.
Folgende Codes dazu in das VBA-Projekt "DieseArbeitsmappe":
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ThisWorkbook
.IsAddin = True
.Save
End With
End Sub
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = False
End Sub
Die Datei muss dann auf jeden Fall beim schließen gespeichert werden.
Wird die Datei dann ohne aktivierte Makros geöffnet, wird sie als AddIn geladen, das heißt ohne Tabellenblätter. Sie kann dann nur in der VBA-Umgebung bearbeitet werden, diese eventuell mit einem Passwort sichern.
Wird sie mit aktivierten Makros geöffnet, wird IsAddin auf False gesetzt und somit die Datei als normale Mappe geöffnet.
MfG
JöKe
Quelle:
Das Excel-VBA Codebook
Monika Weber,
Melanie Breden
Antwort 3 von SylvieH
Hallo Oliver, Hallo Jöke,
vielen Dank für die schnell Hilfe.
Zu der Lösung von Jöke habe ich noch eine Frage.
Warum muss die Datei auf jeden Fall beim Verlassen gespeichert werden ?
Gibt´s da nicht noch eine Lösung, dass man das verhindern kann - z.B. Abbruch ?
Viele Grüße
Sylvie
vielen Dank für die schnell Hilfe.
Zu der Lösung von Jöke habe ich noch eine Frage.
Warum muss die Datei auf jeden Fall beim Verlassen gespeichert werden ?
Gibt´s da nicht noch eine Lösung, dass man das verhindern kann - z.B. Abbruch ?
Viele Grüße
Sylvie
Antwort 4 von JoeKe
Hallo Sylvie,
mit "muss gespeichert werden" meinte ich, wenn eine neue Datei angelegt wird, in die der Code eingefügt wird. Durch
wird die Mappe ohne das Speicher-Dialogfenster gespeichert , du hättest somit nur nachträglich noch die Möglichkeit den Dateinamen sowie den Speicherort festzulegen. Während der weiteren Benutzung, wird die Datei beim Schließen ohne Abfrage gespeichert. Würde das Speichern nicht "erzwungen", würde wenn IsAddin auf False gesetzt und die Mappe damit gespeichert wurde, beim verneinen des Speicher-Dialogs IsAddIn auf False gespeichert bleiben und somit die Mappe auch ohne Makros geöffnet werden können.
Gruß
Jörg
mit "muss gespeichert werden" meinte ich, wenn eine neue Datei angelegt wird, in die der Code eingefügt wird. Durch
ThisWorkbook.Savewird die Mappe ohne das Speicher-Dialogfenster gespeichert , du hättest somit nur nachträglich noch die Möglichkeit den Dateinamen sowie den Speicherort festzulegen. Während der weiteren Benutzung, wird die Datei beim Schließen ohne Abfrage gespeichert. Würde das Speichern nicht "erzwungen", würde wenn IsAddin auf False gesetzt und die Mappe damit gespeichert wurde, beim verneinen des Speicher-Dialogs IsAddIn auf False gespeichert bleiben und somit die Mappe auch ohne Makros geöffnet werden können.
Gruß
Jörg

