Excel Arbeitsblatt zeitgesteuert löschen
Hallo,
wie kann man ein Excel Arbeitblatt in eriner Excel Mappe zeitgesteuert löschen? Ich bin in VBA eine absolute Niete! ;-P
Vielleicht kann mir hier jemand helfen.
Der Ablauf soll folgendermaßen ablaufen:
Sobald das hinterlegte Datum erreicht oder überschritten ist soll das Arbeitsblatt unwiderruflich gelöscht werden. Eventuell sinnvoll wäre auch ein gleichzeitiges Abspeichern der Arbeitsmappe.
Vielen Dank im Voraus
Micico
Antwort schreiben
Antwort 1 von Beverly vom 26.02.2019, 13:59 Options
Hi,
beim Schließen der Arbeitsmappe wird geprüft, ob das Datum in Tabelle1 A2 < Heute ist. Wenn ja, wird Tabelle2 gelöscht. Arbeitsmappe wird gespeichert.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim inTabellen As Integer
For inTabellen = ThisWorkbook.Sheets.Count To 1 Step -1
If Worksheets(inTabellen).Name = "Tabelle2" Then
If Date >= Worksheets("Tabelle1").Range("A2") Then
Worksheets("Tabelle2").Delete
Exit For
End If
End If
Next inTabellen
ThisWorkbook.Save
End Sub
Bis später,
Karin
Antwort 2 von micico vom 27.02.2019, 19:40 Options
Hallo Karin,
zunächst mal vielen Dank für Deine Hilfe. Hab das Programm auch gleich mal ausprobiert und es funzt auch recht gut... Wenn ich jedoch auf beenden klicke kommt noch ein Hinweis, der mich dabei gewaltig stört: "In den Arbeitsblättern, die Sie löschen möchten können Daten vorhanden sein. Um die Daten endgültig zu löschen drücken Sie entfernen". Also das Ganze sollte kommentarlos abgehen. Weiterhin sollte die Option Sicherungskopie nicht nutzbar sein.
Hintergrund meiner Idee ist es, dass ich die Exceldatei an Andere weitergebe und diese nur bis zu dem Stichtag nutzbar sein soll. Es wäre daher sinnvoll die Abfrage beim öffnen auszuführen damit man nicht mit der Sicherungskopie weiterarbeiten kann.
Gruß Micico
Antwort 3 von Beverly vom 27.02.2019, 20:13 Options
Hi,
schau mal auf die HP von Hajo Ziplies
Hajo-Excel Seite "VBA-Beispiele", Unterseite "nur mit Makros". Dort findest du mehrere Beispiel, die dir sicher weiterhelfen.
Bis später,
Karin
Antwort 4 von schnallgonz vom 27.02.2019, 21:24 Options
Hi Micico
ich mische mich nur kurz ein:
welchen Weg Du auch wählst, verabschiede Dich von dem Gedanken, eine Exceldatei wirksam schützen zu können.
Was ist, wenn Deine Dateiempfänger eine Kopie der Datei haben (es soll ja Leute geben, die regelmäßig Backups machen)?
Jeder, der sich einigermaßen mit VBA auskennt, kann alle Schutz- oder Löschoptionen abklemmen.
gruß
schnallgonz
Antwort 5 von micico vom 27.02.2019, 22:55 Options
Hi Schnallgonz,
Du hast sicherlich recht, aber die Leute (meist Handwerker) sind meist schon happy, wenn sie eine Excel-Datei öffnen können... Nix gegen Handwerker, bin selbst einer von den Jungs.... Ich habe mir halt die Mühe gemacht mit Excel eine Preisliste zu erstellen, mit der z.B. ein Bäcker komplette Angebote Heizungsanlagen innerhalb weniger Minuten erstellen kann.... (einschl. Händler-Preisupdate etc.) und das mit einer Präzision, die an Nachkalkulationen mit nur kleinen Abweichungen herankommt. Einige Mitbewerber sind schon an mich herangetreten und wollten ein Demoprogramm haben. Ich hab das einmal gemacht mit dem Erfolg, dass der "Mitbewerber" mir gesagt hat es wäre nix für ihn und später hab ich herausgefunden, dass er mit dem Ding sehr oft arbeitet... Deshalb der "KLEINE" Sicherheitstrick...
Gruss Micico
Antwort 6 von fedjo vom 28.02.2019, 17:21 Options
Hallo Micico,
einfach eine Zeile in den Code von Karin einfügen.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim inTabellen As Integer
For inTabellen = ThisWorkbook.Sheets.Count To 1 Step -1
Zitat:
Application.DisplayAlerts = False
If Worksheets(inTabellen).Name = "Tabelle2" Then
If Date >= Worksheets("Tabelle1").Range("A2") Then
Gruß
fedjo
Antwort 7 von micico vom 04.03.2019, 15:33 Options
Supi, soweit so gut.... Kann man denn sie Überprüfung auch beim öffnen der Datei durchführen lassen???
Gruss Micico
Antwort 8 von Beverly vom 04.03.2019, 15:50 Options
Hi,
schreibe den Code nicht in das WorkbookBefore_Close sondern in das Workbook_Open Ereignis. Bedenke aber, dass dies alles nur dann funktioniert, wenn die Makros beim Starten der Arbeitsmappe auch wirklich aktiviert werden.
Bi später,
Karin