Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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 anhand Bedingung in A1

Zeilen löschen anhand Bedingung in A1
F.
Hallo zusammen
Ich möchte alle Zeilen einer sehr langen Liste löschen lassen, wenn sie in der Spalte A nicht den
gleichen Begriff aufweisen, wie in A1 steht.
Vielen Dank.
Gruss
Frédéric
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 13:43:08
Oberschlumpf
Hi Frédéric
Versuch mal:
Sub test()
Dim loRow As Long
For loRow = Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Range("A" & loRow).Value  Range("A1").Value Then
Rows(loRow & ":" & loRow).Delete Shift:=xlUp
End If
Next
End Sub
Sucht in den Zeilen 2 bis letzte, benutzte Zeile in Spalte A und löscht JEDE Zeile, dessen Wert in Spalte A NICHT mit Wert in Zelle A1 übereinstimmt.
Hilfts?
Ciao
Thorsten
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 13:54:49
F.
Funktioniert leider nicht. Könnte es daran liegen, dass in A1 keine Zahl, sondern z.B. Haus 1 steht?
Gruss
Frédéric
Anzeige
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 14:01:31
Oberschlumpf
ne Bsp-Datei wäre nicht schlecht.
Meinem Code ist es "egal", ob Zahl oder Text. Es wird geprüft, ob Wert in A1 mit Wert in Spalte A der anderen Zeilen übereinstimmt.
Ciao
Thorsten
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 14:21:05
F.
Hallo Thorsten
Ergibt Fehler: Unzulässiger oder unzureichender Verweis
Und markiert. in der for...-Zeile "rows"
Gruss
Frédéric
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 14:29:02
Oberschlumpf
Hi Frédéric
Ja, hast Recht.
Verwende diese Zeile:
For loRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
Hilfts?
Ciao
Thorsten
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 14:31:58
F.
Ja, vieeel besser. Danke.
Gruss
Frédéric
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 13:50:30
Wenderhold
Hi Frederic
Public Sub del_lines()
dim i as long
dim szCompare as string
szCompare = sheets(1).Cells(1,1).Value
for i = 2 to 65536      ' über alle Zeilen
' Abbruchbedingung
if sheets(1).cells(i,1).Value = "" then exit for
if sheets(1).cells(i,1).Value  szCompare then
sheets(1).Rows(i).delete
endif
next i
End Sub
best wishes
eugen
Anzeige
AW: Zeilen löschen anhand Bedingung in A1
29.01.2010 13:59:44
F.
Hallo Eugen
Hängt sich auf.. die Kiste hat aber genügend Power. Liegt das Problem (wie bei der anderen Antwort" daran, dass in A1 keine Zahl, sondern z.B. Haus 1 steht?
Gruss
Frédéric
@Wenderhold, Zeilen löscht man immer von unten
29.01.2010 14:14:21
unten
Hallo Eugen,
nach oben in ein er Schleife (wie bei Thorsten),
sonst läuft der Zähler zu den vorhandenen Zeilen falsch.
Gruß Tino
müsste schnell genug sein.
29.01.2010 14:00:12
Tino
Hallo,
Tabelle im Code noch anpassen.
Sub Loeschen_Mit_Formel()
Dim oSH As Worksheet, iCalc As Integer
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(RC1R1C1,TRUE,ROW())" 'entsprechende Formel
oSH.UsedRange.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
End With
.ScreenUpdating = True
.Calculation = iCalc
End With
End Sub

Gruß Tino
Anzeige
AW: müsste schnell genug sein.
29.01.2010 14:24:41
F.
Hallo Tino
Hat geklappt und war wirklich superschnell. Vielen Dank!
Ehrlich gestanden verstehe ich den grössten Teil des Codes nicht, aber werde mich bemühen alle Eure Lösungen möglichst bald nachvollziehen zu können.
Wenn ich eine variable Anzahl von Tabellen habe, wie müsste ich das umbauen, damit diese Lösung erst ab dem 9. Blatt beginnt?
Gruss
Frédéric
mit einer Schleife ...
29.01.2010 14:33:32
Tino
Hallo,
ab der Tabelle 9 bis zur letzten.
Sub Loeschen_Mit_Formel()
Dim oSH As Worksheet, iCalc As Integer
Dim i As Integer
With Application
iCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
'Schleife ab den 9. Tabellenblatt
For i = 9 To Worksheets.Count
Set oSH = Worksheets(i) 'Tabelle anpassen
With oSH.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
.Formula = "=IF(RC1R1C1,TRUE,ROW())" 'entsprechende Formel
oSH.UsedRange.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
End With
Next i
.ScreenUpdating = True
.Calculation = iCalc
End With
End Sub
Gruß Tino
Anzeige
AW: mit einer Schleife ...
29.01.2010 14:36:35
F.
Hallo Tino
Vielen herzlichen Dank! Hat wunderbar geklappt.
Gruss
Frédéric
AW: müsste schnell genug sein.
29.01.2010 14:33:46
F.
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige