ich habe eine Tabelle und ich möchte wenn ich die Tabelle schließe, sollen die Daten von "A2" bis "O" bis zum Letzten Eintrag gelöscht werden. es sollte eine Abfrage kommen
hat einer eine Idee?
Gruß
Olaf
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Range("A2").ClearContents
Columns(15).clearvontents
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Mldg$
Dim loLetzte As Long
Mldg = MsgBox("Soll der Bereich gelöscht werden?", vbYesNo + vbQuestion, "Löschbestätigung")
If Mldg = vbYes Then
With Sheets("Tabelle1") 'Tabelle anpassen
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile in Spalte A ggf. anpassen
.Range(.Cells(2, 1), .Cells(loLetzte, 15)).ClearContents
End With
ElseIf Mldg = vbNo Then Exit Sub
End If
End Sub
Gruß Werner
Um Inhalte in einer Excel-Tabelle beim Schließen der Datei zu löschen, kannst Du ein Makro verwenden. Folge diesen Schritten:
Öffne die Excel-Datei, in der Du die Daten löschen möchtest.
Drücke Alt + F11
, um den VBA-Editor zu öffnen.
Doppelklicke auf "DieseArbeitsmappe" im Projektfenster.
Füge den folgenden VBA-Code in das rechte Fenster ein:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Mldg As Long
Dim loLetzte As Long
Mldg = MsgBox("Soll der Bereich gelöscht werden?", vbYesNo + vbQuestion, "Löschbestätigung")
If Mldg = vbYes Then
With Worksheets("Tabelle1") ' Passe den Tabellennamen an
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row ' Letzte Zeile in Spalte A
.Range(.Cells(2, 1), .Cells(loLetzte, 15)).ClearContents
End With
End If
End Sub
Schließe den VBA-Editor und speichere die Datei.
Wenn Du die Tabelle nun schließt, wirst Du gefragt, ob Du die Inhalte löschen möchtest.
Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"
Fehler: "Laufzeitfehler - 9: Index außerhalb des gültigen Bereichs"
Fehler: "Typen unverträglich"
Mldg
, das den Rückgabewert der MsgBox speichern sollte.Wenn Du kein Makro verwenden möchtest, kannst Du auch manuell die Inhalte löschen, bevor Du die Datei schließt. Dies ist jedoch weniger automatisiert:
A2
bis zur letzten Zeile in Spalte O
.Entf
-Taste oder klicke mit der rechten Maustaste und wähle "Inhalt löschen".Diese Methode ist weniger effektiv, da sie nicht automatisch beim Schließen der Excel-Tabelle ausgeführt wird.
Ein Beispiel für die Verwendung des Codes:
A2
bis zur letzten ausgefüllten Zeile in Spalte O
gelöscht werden. Ändere den With Worksheets("Tabelle1")
-Befehl zu With Worksheets("Umsatz")
.Workbook_BeforeClose
: Dieser Event-Handler wird vor dem Schließen der Arbeitsmappe aufgerufen, was ihn ideal für das Löschen von Inhalten macht.1. Wie kann ich die Abfrage anpassen? Du kannst den Text in der MsgBox ändern, um eine spezifischere Frage zu stellen.
2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren, solange Makros aktiviert sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen