Kopie Datei
16.10.2020 12:38:44
Frank
Der nachfolgende Code funktioniert 1a hat aber nur ein Problem, dass man den Code mit der ESC taste unterbrechen kann.
Deswegen würde ich ihn gern umstricken, bekomme es aber irgendwie nicht gebacken.
Folgendes Szenarium:
Meine Datei "Firma.xlsm" soll beim Schließen eine abgespeckte Kopie bekommen. Heißt in der Kopie darf man nicht alles sehen. Ich habe das bis jetzt so gelösst, das bei Workbook open abgefragt wird wie heißt du und der Code ausgeführt wird. Wenn aber die ESC Taste lange gedrückt wird stirbt der Code und die Datei geht ungefiltert auf. Es können dann zwar keine internen Makros über Buttons gesteuert werden aber man sieht Sachen welche nicht jeder sehen soll (Datenschutz -. Krankenstand als Beispiel).
Wie binde ich die Befehle welche bei Workbook_open drinn stehen (also ausblenden der roten und grünen Felder) so ein dass sie beim Schließen und erstellen der Kopie ausgeführt werden.
Danke fürs drüberschauen Gruß Frank
Private Sub Workbook_Open()
Dim Zelle As Range
Dim Bereich As Range
Dim ws As Worksheet
On Error Resume Next
If ActiveWorkbook.Name = "Kopie.xlsm" Then
For Each ws In Worksheets
Select Case ws.Name
Case "A-Schicht", "B-Schicht", "C-Schicht", "D-Schicht", "E-Schicht"
Set Bereich = ws.Range("P12:NV140")
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = 4 Then ' grün
Zelle.Interior.ColorIndex = 0
Zelle.ClearContents
Zelle.ClearComments
End If
If Zelle.Interior.ColorIndex = 3 Then ' rot
Zelle.Interior.ColorIndex = 0
Zelle.ClearContents
Zelle.ClearComments
End If
Next
End Select
Next
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs "Q:\allgemein\Kopie.xlsm", WriteResPassword:="1234"
Application.DisplayAlerts = True
End Sub