Live-Forum - Die aktuellen Beiträge
Datum
Titel
15.07.2024 16:00:57
15.07.2024 15:41:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lösche Zeilen ohne bestimmten Inhalt

Lösche Zeilen ohne bestimmten Inhalt
18.04.2009 18:02:56
Fabio
Hallo zusammen,
dank der Forums-Hilfe kann ich nun "mein" Verzeichnis sehr gut auslesen. Nun habe ich relativ lange "Zahlenkolonnen" - die ich gerne etwas "komprimiert hätte"
Folgendes will ich erreichen (per Makro?):
Lösche alle Zeilen in denen in der Spalte B "NICHT" die Buchstabenkombination "KW" vorkommt
Jemand einen Tipp, Trick oder ähnliches wie ich das erreichen kann (außer per manuellem Löschen?)
Lieben Dank!
Fabio
https://www.herber.de/bbs/user/61282.xls
(da sollen alle gelöscht werden ausser den "KW" Zeilen)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lösche Zeilen ohne bestimmten Inhalt
18.04.2009 18:33:12
Oberschlumpf
Hi Fabio
Setz mal diesen Code ein:

Sub sbNichtKW()
Dim liZeile As Integer
With ActiveSheet
For liZeile = .Cells(.Rows.Count, 2).End(xlUp).Row To 3 Step -1
If InStr(.Range("B" & liZeile).Value, "KW") = 0 Then
.Rows(liZeile).Delete
End If
Next
End With
End Sub


Der Code löscht jede Zeile, in der NICHT "KW" vorkommt. Es bleiben also alle "01. KW" , "02. KW", usw. Zeilen über.
Hilfts?
Ciao
Thorsten

Ergängzungsfrage!
19.04.2009 17:55:48
Fabio
Hallo zusammen,
neben dem eigentlichen Problem will ich ja auch versuchen damit ein wenig VBA zu lernen. Der Code von Thorsten:
Der unten nochmals eingefügte Code von Thorsten - wie würde der aussehen, wenn ich erreichen möchte
"Lösche alle Zeilen, die in der Spalte C (!) den Wert "0" enthalten"
Fabio
Die Frage ist weder eilig noch wichtig - aber vielleicht findet jemand Zeit den Code mal einfach abzuändern. Danke sehr!
"

Sub sbNichtKW()
Dim liZeile As Integer
With ActiveSheet
For liZeile = .Cells(.Rows.Count, 2).End(xlUp).Row To 3 Step -1
If InStr(.Range("B" & liZeile).Value, "KW") = 0 Then
.Rows(liZeile).Delete
End If
Next
End With
End Sub


Anzeige
AW: Ergängzungsfrage!
19.04.2009 17:58:42
Hajo_Zi
Hallo,
ersetze
If InStr(.Range("B" & liZeile).Value, "KW") = 0 Then
durch
If .Range("C" & liZeile) = 0 Then

AW: Danke sehr
19.04.2009 18:03:48
Fabio
Hallo Hajo,
vielen Dank auch an Dich!
Fabio
enthält nicht .. Lösche Zeilen
18.04.2009 18:36:06
Mike
Hey Fabio,
definier ein AUTOFILTER über die Liste und sag dann
im "benutzerdefiniert" "enthält nicht / KW".
Gruss
Mike
AW: Autofilter - gute Idee
18.04.2009 21:53:54
Gerd
Hallo Fabio!

Sub AF_Del()
Dim Bl As Worksheet, FB As Range, AF As Range, rngDel As Range
Set Bl = ThisWorkbook.Worksheets("Tabelle1")
Set FB = Bl.Cells(3, 2).CurrentRegion
FB.AutoFilter
FB.AutoFilter Field:=1, Criteria1:="*KW*", Operator:=xlAnd
On Error GoTo weiter
Set AF = Bl.AutoFilter.Range.Rows(2).Resize(Bl.AutoFilter.Range.Rows.Count - 1)
Set rngDel = Application.Intersect(AF, Bl.Cells.SpecialCells(xlCellTypeVisible))
weiter:
If Not rngDel Is Nothing Then rngDel.EntireRow.Delete
FB.AutoFilter
End Sub


Gruß Gerd

Anzeige
AW: Beide gehen - Danke
19.04.2009 17:48:51
Fabio
Hallo zusammen,
vielen lieben Dank für die Scripte! Es funktionieren beide wunderbar. Welches ich nun nehme ist vermutlich egal - da beide Klasse funktionieren.
Vielen Dank an dieser Stelle nochmals!
Fabio

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige