Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

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

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige