Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bedingtes Zeilen-Loeschen

bedingtes Zeilen-Loeschen
08.10.2007 14:39:00
John
Hi Leute,
gibt es in Excel die Moeglichkeit, Zeilen bedingt darauf zu loeschen, dass in einer bestimmten Spalte in der Zelle der betreffenden Zeile ein bestimmer Eintrag vorhanden ist?
Beispiel:
4 Zeilen und 4 Spalten; 1. Zeile: heute gruen 10 4, 2. Zeile: heute blau 30 66, 3. Zeile: gestern rot 2 42, 4. Zeile: morgen blau 55 8
Jetzt sollen alle Zeilen, die in der ersten Spalte den Eintrag heute aufweisen, geloescht werden.
Ueber jegliche Hilfe freue ich mich sehr.
Gruss,
John.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingtes Zeilen-Loeschen
08.10.2007 14:45:00
regina
Hallo ,
versuch es mal hiermit

Sub ZeilenLöschenA()
'Zeilen löschen wenn Spalte A = heute
'Achtung Tabelle erster Stelle
Dim LR%, i%
Worksheets(1).Select
LR = Cells(Rows.Count, 1).End(xlUp).Row
For i = LR To 1 Step -1
If (Cells(i, 1) ="heute" Then
Rows(i).Delete
End If
Next i
End Sub


MFG REGINA

AW: bedingtes Zeilen-Loeschen
08.10.2007 14:49:00
Klaus
Hallo John

Sub Zeilenlösch()
Application.ScreenUpdating = False
Dim I As Integer
For I = 1 To 300 ' Anzahl Zeilen, die durchwühlt werden
If ActiveSheet.Cells(I, 1).Value = "heute" Then ' wenn in Spalte A ein 'heute' steht
ActiveSheet.Cells(I, 1).Activate
Rows(I).Select
Selection.Delete Shift:=xlUp ' die Zeile löschen, übrige hochrücken
If I > 1 Then I = I - 1 ' Zeilenzähler korrigieren um eben gelöschte
End If
Next I
Application.ScreenUpdating = True
End Sub


Gruß
Klaus

Anzeige
AW:ihr habt wohl alle viel Zeit ;-)
08.10.2007 21:21:00
Daniel
Hi
wenns viele Zeilen sind, ist das löschen per Schleife ne langwierige Angelegenheit.
schneller ist sowas hier:

Sub löschen1()
Columns(1).Insert
With Range(Cells(1, 2), Cells(65536, 2).End(xlUp)).Offset(0, -1)
.FormulaR1C1 = "=if(rc2=""heute"", true, row())"
.Formula = .Value
.EntireRow.Sort key1:=Cells(1, 1), order1:=xlAscending, header:=xlNo
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
.EntireColumn.Delete
End With
End Sub


im Prinzip könnte man auch den Autofilter verwenden, das gibt dann sehr kurzen Code, die Ausführung dauert aber ähnlich lang wie die Schleife:


Sub löschen2()
With Columns(1)
.AutoFilter Field:=1, Criteria1:="heute"
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
End Sub


wesentlich schneller wirds, wenn vorher so sortiert werden darf, so daß die zu löschenden Zeilen als ein ununterbrochener Zellblock zusammenstehen, dann ists sogar noch schneller als Variante 1.


Sub löschen3()
With Columns(1)
.EntireRow.Sort key1:=Cells(1, 1), order1:=xlAscending, header:=xlNo
.AutoFilter Field:=1, Criteria1:="heute"
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
End Sub


Gruß, Daniel

Anzeige
AW: bedingtes Zeilen-Loeschen ohne VBA
09.10.2007 00:28:21
Daniel
Hi
bei Excel GUT sollte dir eigentlich der AUTO-FILTER bekannt sein, mit dem du. alle Zeilen,die du nicht löschen willst, ausblendest, bzw nur die anzeigst, die gelöscht werden sollen.
bei gesetzem Autofilter werden normalerweise nur die Zellen bearbeitet (also auch gelöscht), die sichtbar sind, die ausgeblendeten bleiben unverändert.
das funktioniert nur leider bei grösseren Datenmengen nicht ganz zuverlässig.
so ab mehreren 100 bis 1000 Zeilen sollte man zur sicherheit noch vor dem Bearbeitungsschritt:
BEARBEITEN - GEHE ZU - INHALTE - NUR SICHTBARE ZELLEN klicken.
hast du 10.000 und mehr Zeilen zu bearbeiten, ist es auf jeden Fall ratsam, die Daten vorher zu sortieren, so daß alle Zeilen, die sichtbar bleiben sollen, einen zusammenhängenden Block bilden. Das vereinfacht für Excel die Bearbeitung und erhöht die Bearbeitungsgeschwindigkeit und die Zuverlälligkeit enorm.
Gruß, Daniel

Anzeige
hat geholfen, danke.
09.10.2007 11:53:00
John
danke.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige