HERBERS Excel-Forum - das Archiv

Thema: Mappe per Button freigeben! | Herbers Excel-Forum

Mappe per Button freigeben!
lisa

Hallo
Ich habe leider nichts zu diesem Thema finden können und stelle nun Euch Profis die Frage.
Ich habe eine Excelmappe, die ich gern dahingehend gesperrt haben möchte, das ich sie erst drucken oder versenden kann, wenn ich einen Button drücke. Wenn ich diesen also nicht gedrückt habe, kann ich sie über die Office- Funktion nicht drucken und nicht versenden.
Kann man soetwas umsetzen?
Über Extras und Arbeitsmappe oder Blattschutz habe ich leider auch nichts finden können.
Nach meinem Verständniss sollte die Mappe beim öffnen gesperrt sein und erst durch die Freigabe per Button druckbar und auch versendbar sein.
Könnt ihr mir hierbei helfen?
Gruß Lisa

AW: Mappe per Button freigeben!
ChrisL

hallo Lisa
Betreffend Drucken ein Vorschlag im Anhang:
https://www.herber.de/bbs/user/66128.xls
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not Worksheets("Tabelle1").ToggleButton1 Then
MsgBox "Mappe ist nicht freigegeben"
Cancel = True
End If
End Sub
Kann allerdings mittels Deaktivierung der Makros umgangen werden.
Der Versand lässt sich kaum verhindern, weil die Mappe auch ohne Öffnen einem Email beigefügt und verschickt werden kann.
cu
Chris
AW: Mappe per Button freigeben!
fcs

Hallo Lisa,
das Drucken kann man, wenn die Makros aktiviert sind, relativ einfach steuern.
Versenden per e-mail im Datei blockieren: ?
Wahrscheinlich kann man auch die entsprechenden Menüpunkte/Buttons deaktivieren/aktivieren. Das ist aber nicht so meine Welt.
Gruß
Franz
'Code unter DieseArbeitmappe
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If bolDrucken = False Then
Cancel = True
MsgBox "Gedruckt werden kann erst nach Freigabe per Button!"
End If
End Sub
'Code in einem Allgemeinen Modul
Option Explicit
Public bolDrucken As Boolean
'Das "Private" vor "Sub" erst einfügen, wenn das Makro einem Button zugewiesen ist.
Private Sub DruckenFreigabe()
If MsgBox("Datei """ & ActiveWorkbook.Name & """ freigeben zum drucken?", vbQuestion +  _
vbOKCancel, _
"Freigabe - Drucken") = vbOK Then
bolDrucken = True
End If
End Sub