Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kopie Datei

Kopie Datei
16.10.2020 12:38:44
Frank
Hallo zusammen, ich benötige eure Hilfe bei einem scheinbar simplen Problem.
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

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopie Datei
16.10.2020 12:56:54
Oberschlumpf
Hi Frank,
ich weiß jetzt nicht, wieso man mit ESC Code abbrechen/verhindern kann, aber das is auch nich so wichtig.
Idee:
Blende deine "geheimen" Tabellenblätter per Code erst mal mit
Sheets(1).Visible = xlveryhidden
aus
Füge dann irgdwo in der Datei einen Button hinzu, der - nach Passworteingabe - gewünschte Tabellenblätter wieder einblendet.
Da kommste also mit Codeabbruch durch ESC nicht ran.
Ciao
Thorsten
AW: Kopie Datei
16.10.2020 13:15:16
Frank
Hallo Torsten,
danke für deinen schnellen Tipp. Ich möchte keine weitere Passwortafrage. Meine Datei wird ganz normal gespeichert (sicheres Laufwerk) + eine Kopie soll erstellt werden wo alle roten und grünen Zellen mit einmal weiß sind. Komplizierter als gedacht.
Code unterbrechen mit ESC funktioniert so drückt man ESC gleich zu Anfang - läuft der Code in Workbook_open gar nicht erst los - Datei geht nicht auf - soweit ok. wartet man aber zwei drei Sekunden und betätigt dann ESC ist der Code angelaufen - wird unterbrochen und die Datei geht auf. Hilfreich wenn man beim programmieren mistgebaut hat und an den Code wieder rankommen muss
Application.Onkey "(ESC)","" zuschalten mit Application.OnKey "(ESC)"
Gruß Frank
Anzeige
Application.EnableCancelKey = xlDisabled (owT)
16.10.2020 13:15:00
EtoPHG

AW: Application.EnableCancelKey = xlDisabled (owT)
16.10.2020 13:41:44
Frank
Hallo,
ich hatte die Standard Befehle am Anfang weggelassen - mein Code sollte nicht überlang aussehen. So sieht jetzt das original aus - funktioniert auch nicht oder behindern sich jetzt die beiden Befehle
Private Sub Workbook_Open()
Sheets("Tabelle1").Select
Application.OnKey "{ESC}", ""
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
Application.Calculation = xlCalculationManual
Application.EnableCancelKey = xlDisabled
ich versteh nur Bahnhof...
16.10.2020 18:01:19
EtoPHG
Hallo Frank,
VBA gut?
1. Was sind für Dich "Standard Befehle" ? Ein Code sollte nicht schön aussehen, wenn du wünschst, dass er analysiert werden soll!
2. Lass dieses Application.OnKey weg. Was soll das? Es gibt noch andere Möglichkeiten den Code zu unterbrechen!
3. Application.EnableCancelKey = xlDisabled als erster Befehl im Open-Ereignis!
Gruess Hansueli
Anzeige
AW: ich versteh nur Bahnhof...
16.10.2020 20:24:29
Frank
Hallo
Application.EnableCancelKey = xlDisabled als erster Befehl im Open-Ereignis und Application.onkey weg das wars - mein Code wird nicht mehr unterbrochen.
Danke und schönen Abend noch
Gruß Frank
AW: Kopie Datei
16.10.2020 15:32:11
Daniel
Wäre es nicht sinnvoller, wenn du die Kopie der Datei per Makro erstellt und dabei gleich die Inhalte löschst?
Gruß Daniel
AW: Kopie Datei
16.10.2020 16:50:34
Frank
Hallo Daniel - das will ich ja! - Beim schließen soll aus meiner Original Datei die Kopie.xlsm Datei erstellt werden inklusive der Löschung der Zellen. Was beim Öffnen als Makro abläuft - soll beim schließen passieren. So ist die Kopie bereits bereinigt und geht viel schneller auf.
Anzeige
AW: Kopie Datei
16.10.2020 17:06:16
Daniel
Hi
Also im Prinzip so, der Code könnte ins BeforeSaveEvent der Originaldatei
Dim DateinameKopie AS string
DIN WB AS Workbook
If ThisWorbook.name like "*Kopie*" then exit sub
DateinameKopie = Replace(Thisworbook.Fullname, ".", " Kopie.")
With Application
.enableEvants = False
.displayalerts = False
Thisworkbook.savecopyas DateinameKopie
.enableevents = true
.displayalerts = True
End with
Set WB = Workbooks.open(DateinameKopie)
For each sh in WB.worksheets
Hier die bearbeitung
Next
WB.save
WB.close
Dh du speicherst als Kopie, öffnest diese und führst damit die Bearbeitung durch.
Den Code ist nur als Anregung zum selber programmieren gedacht und nicht als fertiges Makro.
Gruß Daniel
Anzeige
AW: Kopie Datei
16.10.2020 17:27:43
Frank
Hi Daniel - ich wusste es wird kompliziert :-) wird wohl so werden - Kopie erstellen - Kopie bearbeiten - Kopie an richtigen Platz verschieben - Hilfskopie wieder löschen... Gruß Frank
AW: Kopie Datei
16.10.2020 17:34:11
Daniel
was ist daran jetzt komplizert?
einfacher logischer Ablauf mit dem Vorteil, dass du am Original nichts verändern musst.
Wenn der Beitrag wirklich noch offen bleiben soll, solltest du vielleicht besser auch eine konkrete Frage stellen.
Gruß Daniel
AW: Kopie Datei
16.10.2020 19:30:53
Frank
Hallo Daniel - alles gut - mein ursprüngliches denken war ohne Kopie auszukommen - bin gerade am umsetzen deines Gedankens. Danke und schönen Abend Gruß Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige