Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1124to1128
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen löschen nach Bedingung

Zeilen löschen nach Bedingung
Nicole
Hallo alle zusammen,
ich habe einen Code zum Löschen von Zeilen, wenn in Spalte B eine "0" steht. Klappte bisher auch wunderbar. Nun habe ich aber mehr Spalten gefüllt, von denen einige Zellen verbunden sind in der Überschrift. Jetzt bekomme ich die Fehlermeldung "..verbundene Zeilen geht nicht...".
Wie sage ich unten im Code, dass erst ab Zeile 7 geschaut werden soll, ob "0" in Spalte B ist? Oder würde die Fehlermeldung immer noch kommen?
Oder kann man den Code fürs "Löschen einer Zeile nach Bedingung" auch noch schlanker machen?
strSuchwert = "0" 'Suchwert
SucheInSpalte = "2" 'Spalte B
Set oSH = Sheets("Tabelle1")
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())"
oSH.UsedRange.Sort Key1:=.Cells(0, 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
Vielen Dank schon im voraus
Nicole

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen löschen nach Bedingung
16.12.2009 14:52:02
Tino
Hallo,
teste mal
Sub test()
Dim LLetzte&
Dim oSH As Worksheet
Dim strSuchwert$, SucheInSpalte$
Dim iCalc%

strSuchwert = "0" 'Suchwert 
SucheInSpalte = "2" 'Spalte B 

Set oSH = Sheets("Tabelle1")

LLetzte = oSH.Cells.SpecialCells(xlCellTypeLastCell).Row

If LLetzte > 6 Then

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

End If


End Sub
Gruß Tino
Anzeige
AW: Zeilen löschen nach Bedingung
16.12.2009 15:14:58
Nicole
leider kommt ein "anwendungs- oder objektbezogener Fehler" bei der Zeile:
With Range(oSH.Cells(7, oSH.Columns.Count), oSH.Cells(LLetzte, oSH.Columns.Count))
AW: Zeilen löschen nach Bedingung
16.12.2009 15:32:04
Tino
Hallo,
habe es gerade getestet, bei mir kommt kein Fehler!?
Lade mal ein Beispiel hoch.
Gruß Tino
AW: Zeilen löschen nach Bedingung
16.12.2009 15:50:32
Luschi
Hallo Nicole,
so sollte es klappen:
With oSH.Range(oSH.Cells(7, oSH.Columns.Count), oSH.Cells(LLetzte, oSH.Columns.Count))
Gruß von Luschi
aus klein-Paris
AW: Zeilen löschen nach Bedingung
16.12.2009 16:08:14
Tino
Hallo,
normalerweise reicht es wenn die Referenzierung auf die Tabelle in den Klammern stattfindet.
Ich denke der Fehler liegt wo anders.
Gruß Tino
Anzeige
AW: Zeilen löschen nach Bedingung
16.12.2009 16:25:27
Nicole
danke euch beiden, mit Luschis Code-Schnippsel :-) hats geklappt.
Nicole
wo steht Dein Code?
16.12.2009 16:29:38
Tino
Hallo,
wahrscheinlich nicht in einem Modul.
Gruß Tino
AW: wo steht Dein Code?
16.12.2009 16:43:38
Nicole
nein, direkt in der Arbeitsmappe bzw. in einem Tabellenblatt
ok. dann ist es klar. danke oT.
16.12.2009 16:44:51
Tino

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige