Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellinhalte löschen beim schließen der Datei

Zellinhalte löschen beim schließen der Datei
17.05.2018 17:12:00
Marvin
Hallo zusammen,
ich möchte in meiner erstellten Excel Tabelle im bestehenden Makro das die Formeln/Zellinhalte einfügt um die Informationen in einer Auswertung darzustellen eine Funktion hinzufügen, die trotz dem abspeichern der Datei die eingefügten Formeln/Zellinhalte beim schließen der Datei löscht, damit der nächste Nutzer wieder eine leere Auswertung zu sehen bekommt.
Der aktuelle Code sieht so aus...
Workbook_BeforeClose
Selection.ClearContents
Range("J35").Select
Mir stellt sich die Frage, ob ich das über den Excel Editor einfach einfügen kann?
Für eure Hilfe bin ich sehr dankbar!
VG
Marvin
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalte löschen beim schließen der Datei
17.05.2018 17:53:28
ChrisL
Hi Marvin
Wird kompliziert weil...
Wenn jemand die Mappe speichert und dann ohne Speichern schliesst, bringt ein BeforeClose nichts. Darum...
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("J35").ClearContents
End Sub
Allerdings müsstest du die Formel dann gleich wieder rein machen (wenn jemand weiter arbeitet). Und weil es leider kein AfterSave Ereignis gibt, müsste man den Speichervorgang mit Cancel=True abfangen und einen eigenen Speichern-Dialog dazwischen bauen. Dann bekommst du allerdings eine Endlosschleife (dein Speichern löst das BeforeSave-Event erneut aus), was du mit EnableEvents verhindern kannst. Aber weil man EnableEvents nicht ohne Fehlerhandling benutzen sollte, müsstest du dann noch ein Fehlerhandling schreiben :)
Ob sich der Aufwand lohnt, nur um die Datei ohne Formel zu speichern, damit du sie beim Öffnen gleich wieder reinschreiben kannst...
Ich glaube eine Vorlagedatei wäre zielführender.
cu
Chris
Anzeige
Nix kompliziert …
17.05.2018 18:17:35
RPP63
… wenn man die Bedeutung einer Excel-Vorlage (.xltx) kennt!
Da braucht es keine Verrenkungen und erst recht kein VBA.
Gruß Ralf
AW: Nix kompliziert …
17.05.2018 18:47:56
Marvin
Hallo Ralf,
ich habe die Datei in .xltx & .xltm gespeichert, jedoch löst sich mein Problem nicht, dass die Zellinhalte immer noch da sind und nicht gelöscht werden. Ausserdem wird das Makro nicht mehr nutzbar, durch die Speicherung in .xltx...
Ich möchte kein zweites Makro aufnehmen welches die Zellinhalte nach dem benutzen der Datei löscht, sondern das es automatisch beim schließen der Datei erledigt wird.
Danke
Anzeige
Eine Vorlage …
17.05.2018 19:44:25
RPP63
… öffnet eine neue Datei auf Basis der Vorlage.
Dort sind sämtliche Formatierungen, Formeln, usw. hinterlegt.
Wenn Du sie schließt (egal ob mit oder ohne Speichern), bleibt die Vorlage jungfräulich!
Öffne daher nach dem "Spiel" über Datei, Neu eine neue Datei auf Basis der Vorlage …
Anzeige
AW: Zellinhalte löschen beim schließen der Datei
18.05.2018 14:16:37
Marvin
Hallo,
alles klar werde es so mit der Vorlage machen.
Vielen Dank für die Hilfe!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalte beim Schließen der Datei automatisch löschen


Schritt-für-Schritt-Anleitung

Um Zellinhalte beim Schließen einer Excel-Datei automatisch zu löschen, kannst du VBA (Visual Basic for Applications) nutzen. Befolge diese Schritte:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Suche im Projektfenster auf der linken Seite nach deiner Arbeitsmappe. Klicke mit der rechten Maustaste darauf und wähle "Code anzeigen".

  3. Füge den folgenden Code in das Modul ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Sheets("DeinBlattname").Range("A1:Z100").ClearContents
    End Sub

    Ersetze "DeinBlattname" mit dem Namen des Blattes, auf dem du die Zellinhalte löschen möchtest. Der Bereich A1:Z100 kann angepasst werden, je nach Bedarf.

  4. Speichere die Datei als Makro-fähige Datei (.xlsm), um den VBA-Code zu speichern.

  5. Schließe den VBA-Editor und teste die Funktion, indem du die Datei schließt.


Häufige Fehler und Lösungen

  • Problem: Der VBA-Code wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Datei als .xlsm gespeichert ist und dass du Makros in Excel aktiviert hast.
  • Problem: Zellinhalte werden nicht gelöscht.

    • Lösung: Überprüfe den angegebenen Blattnamen und den Zellbereich im Code.
  • Problem: Das Makro funktioniert nicht, wenn die Datei ohne Speichern geschlossen wird.

    • Lösung: Dies ist eine Einschränkung von Excel. Du kannst nur beim Speichern Zellinhalte löschen, wie im Forum vorgeschlagen.

Alternative Methoden

Wenn du die Excel-Tabelle leeren ohne Formeln zu löschen möchtest, kannst du auch eine Vorlage erstellen:

  1. Erstelle eine neue Excel-Vorlage (.xltx oder .xltm).
  2. Lege alle benötigten Formatierungen und Formeln fest.
  3. Wenn du die Datei schließt, wird die Vorlage nicht verändert, und die Zellinhalte bleiben leer.

So kannst du die Excel-Tabelle beenden, ohne dass die Daten verloren gehen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um den VBA-Code anzupassen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Sheets("Daten")
        .Range("A2:A50").ClearContents ' Löscht nur die Daten in der Spalte A
        .Range("B2:B50").ClearContents ' Löscht die Daten in der Spalte B
    End With
End Sub

Dieser Code löscht nur die Zellinhalte in den angegebenen Bereichen der Tabelle "Daten", während die Formeln in anderen Zellen erhalten bleiben.


Tipps für Profis

  • Nutze das EnableEvents-Feature in VBA, um das automatische Auslösen von Ereignissen zu steuern. So kannst du Endlosschleifen vermeiden.
  • Erstelle Backup-Kopien deiner Excel-Datei, bevor du Änderungen am VBA-Code vornimmst.
  • Halte deinen Code modular, indem du separate Subroutinen für häufig verwendete Funktionen erstellst, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um nur bestimmte Zellen zu löschen? Ja, du kannst den Zellbereich im ClearContents-Befehl anpassen, um nur spezifische Zellen zu leeren.

2. Ist es möglich, die Zellinhalte beim Speichern zu löschen? Ja, du kannst den Workbook_BeforeSave-Event verwenden, um Zellinhalte vor dem Speichern zu löschen, jedoch musst du hier auf Endlosschleifen achten.

3. Was passiert, wenn ich die Datei als .xltx speichere? Wenn du die Datei als .xltx speicherst, kannst du keine Makros verwenden. Stelle sicher, dass du .xlsm für Makro-fähige Dateien verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige