Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestimmte Zeilen löschen

bestimmte Zeilen löschen
04.11.2003 15:23:12
svensvensson
Hallo!

Ich möchte Teile meiner Arbeit gerne automatisieren, ich muss bestimmte Zeilen in einer Tabelle löschen, wenn nämlich in einer Spalte ein bestimmter Wert auftaucht. Anfangs habe ich ein Makro aufgezeichnet, indem ich die betreffenden Spalte autogefiltert und Stück für Stück per Hand die Zeilen gelöscht habe, in denen der betreffende Wert angezeigt wurde. Leider greift VB dabei auf die Zeilennummern zu. WEnn die Daten in einer neu angelieferten Tabelle dann nicht genau da stehen, habe ich Pech. Ich suche also eine Funktion (oder Methode oder wie auch immer), ähnlich wie ActiveWorkbook.DeleteNumberFormat("..."), nur dass ich hier nicht mit Zahlen arbeite. Leider klappt das nämlich so auch nicht, selbst wenn ich der Spalte sage, dass sie Nummern beinhaltet... Also solch eine Funktion nur für strings, nicht für number. Toll, wenn ihr mir helfen könnt! DANKE!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Zeilen löschen
04.11.2003 15:31:09
Mac4
Hi,

hier mal ein einfaches Beispiel. Folgendes Makro löscht alle Zeilen, in denen in Spalte A der Text "Test" erscheint.
Vieleicht hilfts ja schon!


Sub test()
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value = "Test" Then
Rows(i).EntireRow.Delete shift:=xlUp
End If
Next
End Sub


Marc
AW: bestimmte Zeilen löschen
04.11.2003 16:11:05
svensvensson
Es funktioniert, Heureka! Na ja, intuitiv ist die Sprache ja nicht gerade, oder? Danke für die schnelle und unkomplizierte Hilfe!
AW: bestimmte Zeilen löschen
04.11.2003 16:29:28
svensvensson
Hallo!
Noch eine Frage, wenn ich mehrere Werte habe, die gelöscht werden müssen, kann ich das in diese Funktion einbauen oder muss ich die Funktion für jeden Wert neu schreiben? Das sind nämlich für eine Spalte allein 30 Werte, die ich rausschmeißen muss, wär toll, wenn ich das in einer Funktion hinbekomme (AND-Verknüpfung???) DANKE!
Anzeige
AW: bestimmte Zeilen löschen
04.11.2003 16:43:16
Mac4
Hi,

gleiches Beispiel wie vorher, jetzt wird allerdings nach mehreren Werten gesucht. Sie sind unter der Variabelen "Sucharray" zu erfassen:


Sub test()
Dim Sucharray As String
Sucharray = "Test3,Test5,Test7,Test1,Test9,Test11"
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If InStr(1, Sucharray, Cells(i, 1).Value) Then
Rows(i).EntireRow.Delete shift:=xlUp
End If
Next
End Sub


Marc
AW: bestimmte Zeilen löschen
05.11.2003 09:05:25
svensvensson
Guten Morgen!

Weiter gehts... Ich möchte diese Selektion für andere Spalten fortsetzen und dachte bei mir, muss ich lediglich die Nummer der Spalte ändern... Irgendwas läuft da falsch, die Spaltennummer (Nummer 4) ist korrekt, also habe ich zuviel geändert, was? DANKE!!!

Public

Sub SelektionFeldtyp()
Dim Sucharray3 As String
Sucharray3 = "D"
For i = Cells(Rows.Count, 4).End(xlUp).Row To 4 Step -1
If InStr(4, Sucharray3, Cells(i, 4).Value) Then
Rows(i).EntireRow.Delete shift:=xlUp
End If
Next
End Sub

Anzeige
AW: bestimmte Zeilen löschen
05.11.2003 10:50:08
Mac4
Moin,

jo, das war ein bisschen zuviel! In die Variabele Sucharray werden die unterschielichen Suchbegriffe eingegeben. Die Spaltennummer hat hier nicht zu suchen.
Diese beiden Zeilen nicht verändern:
For i = Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
If InStr(1, Sucharray3, Cells(i, 4).Value) Then

Welche Spalten sollen denn durchsucht werden?

Marc
AW: bestimmte Zeilen löschen
05.11.2003 13:39:38
svensvensson
Spalte D, also Nummer 4
AW: bestimmte Zeilen löschen
05.11.2003 13:52:50
Mac4
Hi,

dann müsste es so reichen! Spalte D wird durch den Ausdruck
For i = Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
festgelegt.

Marc
AW: bestimmte Zeilen löschen
05.11.2003 14:09:53
svensvensson
hallo,

ja, es klappt ganz toll, super, wenn das makro alles macht, was ich will... :)
eine sache noch (hoffentlich das letzte!): kann ich platzhalter verwenden? ich will solche felder rausschmeißen, die mit einer bestimmten buchstabenkombination beginnen, z.b. die, die mit "mes" beginnen. falls das zu aufwändig ist, schmeiße ich sie per hand raus, das ist dann nicht mehr soooo der aufwand. DANKE SEHR!
Anzeige
AW: bestimmte Zeilen löschen
05.11.2003 14:36:01
mac4
Hi,

hier noch mal zwei Möglichkeiten:


Sub test()
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If InStr(1, Cells(i, 4).Value, "mes", 1) Then
Rows(i).EntireRow.Delete shift:=xlUp
End If
Next
End Sub


Hier wird nach der Buchstabenkombination "mes" gesucht. Wenn diese irgendwo im Text der Zelle auftaucht, wird diese gelöscht!


Sub test1()
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Left(Cells(i, 4).Value, 3) = "mes" Then
Rows(i).EntireRow.Delete shift:=xlUp
End If
Next
End Sub


Hier werden nur die Zeilen gelöscht, in denen die ersten drei Zeichen der Kombination "mes" entsprechen.

Viel Spaß

Marc
Anzeige
AW: bestimmte Zeilen löschen
05.11.2003 15:03:07
svensvensson
hm, worauf bezieht sich eigentlich die 3? (If Left(Cells(i, 4).Value, 3) = "mes" Then)
Die 4 steht doch für die 4. Spalte, stimmt´s?
AW: bestimmte Zeilen löschen
05.11.2003 15:10:59
Mac4
Hi,

stimmt! Die 3 gehört zur Funktion Links (hier Left) und gibt die Anzahl der zu betrachtenden Zeichen (von links) an!

Marc
AW: bestimmte Zeilen löschen
05.11.2003 15:30:53
svensvensson
Fertig!
Superklasse, es funktioniert. Und das als Anfänger, ich bin begeistert. DANKE! :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige