In Spalte A stehen von Zeile 2 bis 101 Formeln. Zum Teil ist der Wert der Formeln 0. Diese Zeilen möchte ich per Button oder Ereignis SelektionChange löschen. Wer kann helfen?
Gruß
armin
Option Explicit
Sub LeereZellenWennNull()
Dim rngC As Range
For Each rngC In Range("A2:A100")
If rngC.Value = 0 Then
rngC.FormulaR1C1 = ""
rngC = ""
End If
Next rngC
End Sub
Je nach Deinen Anforderungen, ist dieses Makro im Blattordner oder Standartordner des Projektes abzulegen.Um Excel Zellen mit 0 zu löschen, kannst Du eine einfache VBA-Prozedur verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:
Option Explicit
Sub LeereZellenWennNull()
Dim rngC As Range
For Each rngC In Range("A2:A100")
If rngC.Value = 0 Then
rngC.FormulaR1C1 = ""
rngC = ""
End If
Next rngC
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Um das Makro auszuführen, drücke ALT + F8, wähle LeereZellenWennNull und klicke auf Ausführen.
Diese Prozedur entfernt alle Zellen mit dem Wert 0 in den Zeilen A2 bis A100 und löscht sowohl den Zelleninhalt als auch die Formel.
Fehler: Makro wird nicht ausgeführt.
Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.Fehler: Zellen werden nicht geleert.
=WENN(...;0) und stelle sicher, dass die Formel korrekt ist.Falls Du keine VBA verwenden möchtest, gibt es auch manuelle Methoden:
Filter verwenden:
Bedingte Formatierung:
rngC.FormulaR1C1 = "" weglassen und nur rngC = "" verwenden.Werte einfügen verwenden. Kopiere den Bereich und füge ihn mit Rechtsklick > Inhalte einfügen > Werte ein.1. Wie lösche ich nur die Nullwerte, ohne die Formeln zu löschen?
Du kannst die Zellen leeren, indem Du nur rngC = "" im VBA-Code verwendest und die Zeile für das Löschen der Formel weglässt.
2. Kann ich die Zeilen mit 0 automatisch löschen?
Ja, du kannst das Makro anpassen, um die gesamte Zeile zu löschen, indem Du anstelle von rngC = "" die Anweisung rngC.EntireRow.Delete verwendest.
3. Funktioniert das in allen Excel-Versionen? Ja, der VBA-Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen. Stelle sicher, dass Du die Zellen im angegebenen Bereich anpasst.