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

Forumthread: bestimmte Zeilen in USEDRANGE löschen

bestimmte Zeilen in USEDRANGE löschen
Peter
Guten Tag
Ich möchte in einer Tabelle innerhalb des USEDRANGE alle Zeilen löschen, bei denen weder in Zeile B und I ein Wert enthalten sind.
Wie kann ich das mit VBA anstellen?
Gruss, Peter
Anzeige
ZEILE (!) B und I ? Gruß owT
25.10.2011 18:31:16
Luc:-?
:-?
Aw: Spalte muss es natürlich heißen owT
25.10.2011 19:08:20
Peter
AW: Aw: Spalte muss es natürlich heißen owT
25.10.2011 19:19:24
Peter
Anzeige
AW:Anpassung der Fragestellung:
25.10.2011 21:55:28
Peter
Hallo
Vielleicht war das zuviel des Guten. Die Lösung (mit Folgefrage) könnte wie folgt aussehen:
Angenommen, USEDRANGE umfasst in der Tabelle den Bereich A1:M777.
Ich trage in Spalte N auf den einzelnen Zeilen eine Formel ein, welche abfragt, ob auf den entsprechenden Zeile kein Eintrag vorhanden ist:
N1: =wenn(und(B1="";I1="");"Löschen";"")
...
N777: =wenn(und(B777="";I777="");"Löschen";"")
Nun steht in der Spalte N in jeder Zeile "Löschen", wenn die Zeile gelöscht werden soll. Und jetzt bin ich bei der Folgefrage: Ist Suche nach einer Möglichkeit, alle Zeilen AUF EINMAL zu eliminieren, bei denen in Spalte N "Löschen" steht.
Gruss, Peter
Anzeige
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 21:56:30
Gerd
Hallo Peter,
schaue mal, ob die Richtigen markiert werden.
With ActiveSheet
Intersect(.Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow, .Range("I:I").SpecialCells(xlCellTypeBlanks)).EntireRow.Select
End With
Gruß Gerd
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 22:02:50
Peter
Hallo Gerd
Das hat sich jetzt mit meiner Modifikation überschnitten - die jedoch hinfällig geworden ist.
DEINE Lösung funktioniert wie geschmiert. Jetzt habe ich .Select durch .Delete ersetzt und die Zeilen sind weg.
Vielen Dank!
Peter
Anzeige
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 22:01:15
Josef

Hallo Peter,

Sub leereLoeschen()
  Dim rng As Range
  
  With ActiveSheet
    Set rng = .UsedRange.Offset(0, .UsedRange.Columns.Count).Resize(, 1)
  End With
  
  With rng
    .FormulaR1C1 = "=AND(RC2="""",RC9="""")*1"
    .AutoFilter Field:=1, Criteria1:="1"
    .SpecialCells(xlCellTypeVisible).Offset(1, 0).EntireRow.Delete
    .AutoFilter
    .EntireColumn.Delete
  End With
  
  
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 22:19:24
Peter
Hallo Sepp
Vielen Dank für diese Lösung.
Beim Austesten hat sich noch folgendes Problem ergeben:
- bei jedem zusammenhängenden "Zeilenblock" wird immer die erste Zeile nicht gelöscht.
- dies obwohl in der hintersten Spalte in der entsprechenden Zeile aus .FormulaR1C1 = ... auch eine 1 steht
Wenn also die Zeilen 2:9; 13:14 und 22:22 zu löschen wäre bleibt von diesen Zeilen
2:2; 13:13 und 22:22
Gruss, Peter
Anzeige
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 22:29:02
Josef

Hallo Peter,
ich hatte .Offset() an der falschen Stelle;-))

Sub leereLoeschen()
  Dim rng As Range
  
  With ActiveSheet
    Set rng = .UsedRange.Offset(0, .UsedRange.Columns.Count).Resize(, 1)
  End With
  
  With rng
    .FormulaR1C1 = "=AND(RC2="""",RC9="""")*1"
    .AutoFilter Field:=1, Criteria1:="1"
    .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .AutoFilter
    .EntireColumn.Delete
  End With
  
  
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: bestimmte Zeilen in USEDRANGE löschen
25.10.2011 22:34:43
Peter
Hallo Sepp
Vielen Dank
So ist es perfekt!
Gruss, Peter

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige