HERBERS Excel-Forum - das Archiv
Makro - Nullstellen - Zeilen löschen
Vohnkar

Schönen Sonntag liebe Experten,
Ich habe schon ein bisschen mit VBA gearbeitet, allerdings nur mit Macrorecorder. Ich glaube, was ich gerade erreichen will benötigt ein Macro, da über die Möglichkeiten des Recorders hinausgeht.
Ich möche in einem Excel-Sheet alle Zeilen entfernen, in der eine bestimmte Spalte eine Null enthält. Da ich die Datei immer wieder verwenden möchte und somit neue Nullstellen dazukommen werden, möchte ich die Zeilen nicht sortieren/händisch löschen. Die Zeilen sollen gelöscht und nicht versteckt werden.
Kann mir dabei jemand helfen?
Danke, liebe Grüße,
Vohnkar

AW: Makro - Nullstellen - Zeilen löschen
Tino

Hallo,
kannst ja mal testen, Tabellenname und Spalte im Code noch anpassen.
Sub Loeschen_Mit_Formelunterstuetzung()
Dim oSH As Worksheet, iCalc As Integer
Dim strSuchwert As String
Dim SucheInSpalte As String


strSuchwert = "0" 'Dein Suchwert 
SucheInSpalte = "2" 'In welcher Spalte gesucht werden soll 

Set oSH = Sheets("Tabelle1") 'Tabelle anpassen 

With Application
 iCalc = .Calculation
 .Calculation = xlCalculationManual
 .ScreenUpdating = False
 
     With oSH.UsedRange
        With .Columns(.Columns.Count).Offset(0, 1)
            
            .Formula = "=IF(TEXT(RC" & SucheInSpalte & ",""@"")=""" & strSuchwert & """,True,ROW())" 'entsprechende Formel 
            
            oSH.UsedRange.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlNo
            
            On Error Resume Next
            .SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
            On Error GoTo 0
            
            .EntireColumn.Delete
        End With
     End With
 
 .ScreenUpdating = True
 .Calculation = iCalc
End With

End Sub
Gruß Tino
AW: Makro - Nullstellen - Zeilen löschen
Vohnkar

Danke dir Tino, das funktioniert perfekt!
AW: ohne Makro, zum Aufzeichnen
Daniel

Hi
wenn die 0 ein fix-Wert ist und alleine in der Zelle steht, dann kann man das durchaus von Hand schnell erledigen und mit dem Recorder aufzeichnen:
1. in der entsprechenden Spalte alle 0 durch WAHR ersetzen
2. entsprechende Spalte markieren
3. BEARBEITEN - GEHE ZU - INHALTE klicken, dort KONSTANTEN und WAHRHEITSWERTE auswählen
4. BEARBEITEN - ZELLEN LÖSCHEN klicken und dann GANZE ZEILE auswählen
Gruß, Daniel
ps: Wahrheitswerte sollten in der entsprechenden Spalte auch nicht vorkommen, aber die sind eh eher selten.
AW: ohne Makro, zum Aufzeichnen
Vohnkar

Danke für den Tip, Daniel. Ist eine super Möglichkeit ein Macro zu umgehen!
Liebe Grüße