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

Loesche Zeilen, wenn ...

Loesche Zeilen, wenn ...
03.06.2007 08:13:52
mehmet
Guten Morgen Forum,
wie kann man alle Zeilen Loeschen, die in Spalte C1:C65536 kein "ja" stehen haben.
Dank und Gruss
mehmet

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 08:16:12
mehmet
Ich habe zwar diesen Makro gefunden:

Sub Leere_Zeilen_Loschen_c1_bis_c65536()
Application.ScreenUpdating = False
Sheets("Tab1").Select
Range("c1:c65536").Select
Dim i As Long
For i = Selection.Cells(Selection.Cells.Count).Row To 1 Step -1
If ActiveSheet.Cells(i, 5).Value = "ja" Then
Rows(i).delete
End If
Next i
Application.ScreenUpdating = True
End Sub


Aber es loescht nicht weg!
Gruss
mehmet

AW: Loesche Zeilen, wenn ...
03.06.2007 08:24:22
Jens
Hallo Mehmet

Sub Loeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("C65536").End(xlUp).Row To 1 Step -1
If Cells(i, 3).Value  "ja" Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub


Gruß aus dem Sauerland
Jens

Anzeige
Nachtrag!
03.06.2007 08:32:00
Jens
Das berücksichtigt aber nur den Bereich von Zeile eins bis zur letzten gefüllten Zelle in Spalte C.
Wenn z.B. in Spalte C die letzte gefüllte Zelle in Zeile 100 ist, aber in A105 noch etwas steht, dann wird die Zeile 105 NICHT berücksichtigt.
Für den Fall müsstest Du es abändern in:

Sub Loeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = 65536 To 1 Step -1
If Cells(i, 3).Value  "ja" Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub


Gruß aus dem Sauerland
Jens

Anzeige
AW: Nachtrag!
03.06.2007 08:57:00
mehmet
Hallo Jens,
deine Schleife läuft und läuft ... 8-) ohne Ergebnis bis ich abbrechen musste.
Gruss
mehmet

AW: Nachtrag!
03.06.2007 19:03:07
Jens
Hallo Mehmet
Der letztere Code läuft ja auch etwas länger, da er alle Zeilen (1-65536) löscht, die nicht "ja" in Spalte C enthalten , also auch die Zeilen, in denen in Spalte C nichts steht.
Das dauert halt ein paar Minütchen ;-)
Der erste Code von mir macht das gleiche, allerdings nur bis zur letzten Zeile, in der in Spalte C etwas steht. :o)
Funzen tun aber beide ;-)
Gruß aus dem Sauerland
Jens

AW: Loesche Zeilen, wenn ...
03.06.2007 08:28:36
Matthias
Hallo mehmet
hilft Dir das ?
Option Explicit

Sub OhneJaZeileLöschen()
Application.ScreenUpdating = False
On Error GoTo weiter
Dim x
For x = 65536 To 1 Step -1
If Cells(x, 3) = "" Then GoTo weiter
If Cells(x, 3)  "ja" Then Rows(x).Delete
weiter:
Next
Application.ScreenUpdating = True
End Sub


Gruß Matthias

Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 08:58:00
mehmet
Hallo Matthias,
wenn ich dein Makro laufen lasse, passiert nichts!
Gruss
mehmet

AW: Loesche Zeilen, wenn ...
03.06.2007 09:05:00
Oberschlumpf
Hi mehmet
Steht da wirklich "ja" in den Zellen, oder vielleicht "Ja" oder "JA" ?
Denn diese drei Worte sind nicht das Gleiche - Excel-VBA unterscheidet zwischen Klein- Großschreibung - es sei denn, du umgehst diese Unterscheidung mit LCase() oder UCase().
Ciao
Thorsten

AW: Loesche Zeilen, wenn ...
03.06.2007 09:15:00
mehmet
Hallo Thorsten,
es steht "ja". Also klein geschrieben.
Gruss
mehmet

AW: Loesche Zeilen, wenn ...
03.06.2007 09:29:00
Oberschlumpf
Hi mehmet
Versuch mal so:

Sub RowDel()
Dim loZeile As Long
With Sheets("Tab1")
For loZeile = 1 to .Cells(Rows.Count, 3).End(xlUp).Row
If .Range("C" & loZeile).Value = LCase("ja") Then
.Rows(loZeile & ":" loZeile).Delete Shift:=xlUp
loZeile = loZeile -1
End If
Next
End With
End Sub


Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 09:38:53
mehmet
Compile error: Syntax error auf Zeile
.Rows(loZeile & ":" loZeile).Delete Shift:=xlUp
Gruss
mehmet

AW: Loesche Zeilen, wenn ...
03.06.2007 09:44:00
Oberschlumpf
.Rows(loZeile & ":" & loZeile).Delete Shift:=xlUp
nicht nur...fragen,testen,Fehler melden...sondern auch mal selbst ausprobieren ;-)
Läuft denn nun wenigstens der Code ohne Fehler durch? Und wenn ja, funktionierts auch wie gewünscht?
Ciao
Thorsten

AW: Loesche Zeilen, wenn ...
03.06.2007 10:03:24
mehmet
Hallo Thorsten,
sorry, ich wollte dich nicht provozieren.
Ich kann doch den Code nicht test, wenn er Fehlermeldung ausgibt.
Trotzdem,
Dank und Gruss
mehmet

Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 09:51:37
Matthias
Hallo mehmet
Verstehe nicht, wieso der von mir geschickte Code bei Dir nicht geht.
Hier mal eine Beispieldatei: https://www.herber.de/bbs/user/42985.xls
Ich habe dabei die leeren Zellen unberücksichtigt gelassen. Sollten die auch gelöscht werden müssen,
melde Dich nochmal, oder entferne die "If-Anweisung" die die Leerzellen ignoriert.
Gruß Matthias

AW: Loesche Zeilen, wenn ...
03.06.2007 09:59:49
mehmet
Hallo Matthias,
komisch, du hast recht. Dein Code funktioniert. Wenn ich es bei mir uebertrage und ausfuehren moechte:
Compile error: Ambiguous name detected: OhneJaZeileLöschen
Was heisst den Ambiguous?
Gruss
mehmet

Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 10:05:17
mehmet
ich habe den Namen abgeaendert:
von Sub OhneJaZeileLöschen()
auf Sub OhneJaZeileLoeschen()
Fehlermeldung weg 8-)

AW: Loesche Zeilen, wenn ...
03.06.2007 10:39:41
Daniel
Hallo
hier zwei verschiedene Möglichkeiten, diese Aufgabe zu erledigen
da sie konsequent die die von Excel vorgegebenen Möglichkeiten nutzen, sind die Makro kurz und schnell
(allerdings ist man bei ausführen dieser Aktionen von Hand auch nicht viel langsamer)
Makro 1 nutzt die Möglichkeit, über die Funktion
BEARBEITEN - GEHE ZU - INHALTE
geziehlt bestimmte Zellen auszuwählen,
Makro 2 benutzt den Autofilter
dieses hat aber den Nachteil, das die erste Zeile immer stehenbleibt, egal was drinsteht.

Sub Makro1()
Columns("A:A").Insert Shift:=xlToRight
Range("A1:A" & Cells(65536, 4).End(xlUp).Row).FormulaR1C1 = "=IF(RC[3]=""ja"",ROW(),TRUE)"
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
Columns("A:A").SpecialCells(xlCellTypeFormulas, 4).EntireRow.Clear
Columns("A:A").Delete
End Sub



Sub Makro2()
Range("A1").CurrentRegion.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes
Range("A1").AutoFilter Field:=1, Criteria1:="ja", Operator:=xlAnd
Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Range("A1").AutoFilter
End Sub


Gruß, Daniel

Anzeige
AW: Loesche Zeilen, wenn ...
03.06.2007 10:45:30
mehmet
Dank dir Daniel
Gruss
mehmet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige