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

Zeile löschen, wenn Kriterium nicht erfüllt

Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 19:02:55
Ralph
Hallo zusammen,
ich habe folgende Aufgabe vor mir und kann sie nicht alleine lösen. Daher möchte ich mir aus diesem super Forum gerne Hilfe holen. Folgenden Vorgang soll das Makro automatisieren, ich hätte das mit Hilfsspalten realisiert und wäre froh wenn es ohne ginge:
Alle Zeilen löschen, die entweder
in Spalte A keine Zahl haben (Zahl kann auch als Text formatiert sein)
ODER
in Spalte A keinen Bindestrich ("-") im Text enthalten ("abc-def" gilt auch).
Anschliessend soll noch eine weitere Funktion ausgeführt werden, da ich aber noch nicht weiss was genau passieren muss und wie ich es beschreiben soll werde ich dafür ein neues Thema aufmachen (Hat auch mit o.g. Funktion nichts gemeinsam).
Ich bedanke mich herzlich im Voraus! Ralph

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 19:12:52
Oberschlumpf
Hi Ralph
kopier diesen Code (ungetestet) in ein allgemeines Modul:
Sub sbDelRows()
Dim lloRow As Long
For lloRow = Cells(.Rows.Count, 1).End(xlUp).Row
If Range("A" & lloRow).Value  "" Then
If Not IsNumeric(Trim(Range("A" & lloRow).Value)) Then
If Instr(Range("A" & lloRow).Value, "-") = 0 Then
Rows(lloRow).Delete
End If
End If
End If
Next
End Sub

Teste zuerst vielleicht mit ner Testdatei.
Hilfts?
Ciao
Thorsten

AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 19:27:48
Ralph
Hi Thorsten,
besten Dank für Deine Antwort. Testdatei ist natürlich vorhanden :o)
Folgende Zeile bringt mir einen Syntax - Fehler
For lloRow = Cells(.Rows.Count, 1).End(xlUp).Row
Habe noch vergessen, dass alle Zeilen die "Arbeitsplatz" in Spalte A enthalten, auch gelöscht werden müssen. Sorry für den Nachtrag.
DANKE und Gruss, Ralph

Anzeige
AW: Zeile löschen, wenn Kriterium.. (Sorry, offen)
17.07.2014 19:28:30
Ralph
.

AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 19:50:56
Gerd
Hallo Ralph!
Sub b()
Dim rngCell As Range
Dim lngRow As Long
For lngRow = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
With Cells(lngRow, 1)
If Not IsNumeric(.Value) Then
If InStr(.Value, "Arbeitsplatz") Or InStr(.Value, "-") = 0 Then .EntireRow.Delete
End If
End With
Next
End Sub

Gruß Gerd

AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 20:19:52
Ralph
Hallo Thorsten und Gerd,
merci für die bisherige Hilfe. Ich sehe ein dass ich so nicht ans Ziel komme. Diverse Zeilen mit Text werden bei mir nicht gelöscht. Ich werde die Originaltabelle so kastrieren, dass die Mappe keine sensiblen Daten mehr enthält und sie dann uploaden.
Es wäre super wenn ihr im Laufe des Abends nochmal in diesen Thread schauen würdet.
Danke, Gruss und bis später. Ralph

Anzeige
AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 20:59:11
Ralph
Hallo nochmal,
ich habe die Datei nun soweit wie möglich "verunstaltet".
Der Code soll alle Zeilen löschen die in Spalte A..
.. keine Zahl (12345678901 oder auch 1231254-1) enthalten
.. leer sind und in Spalte B nicht leer sind
Oder anders: Alle Zeilen mit Inhalt in den Spalten C-N sollen stehen bleiben, alle anderen löschen. Das ist natürlich nur ein Teil der ganzen Mappe, zwischendurch können auch mal 14-15 Zeilen leer sein und dann geht es weiter. Es muss also wirklich ermittelt werden bis zu welcher Zeile Daten vorhanden sind.
Wenn der Code nachher noch reine Zahlen aus den Werten in Spalte A machen würde wäre das super.
Ich entschuldige mich für das Hin- und Her und hoffe nun alles einigermassen klar angegeben zu haben. Für Rückfragen stehe ich sehr gerne zur Verfügung und seid mir das bitte nicht böse sollte ich noch was vergessen haben.
DANKE! Ralph
DL:

Die Datei https://www.herber.de/bbs/user/91560.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Zeile löschen, wenn Kriterium nicht erfüllt
17.07.2014 22:51:15
Oberschlumpf
Hi Ralph
a) ja, in meiner Fehlerzeile waren einige Fehler drin
b) mit gleich sofort einer Bsp-Datei hätte ich auch getestet - deswegen Tipp: bei deinen nächsten Fragen zeig vielleicht gleich eine Bsp-Datei. Das machts nicht nur für uns, auch für dich einfacher ;-)
hier teste mal, deine Datei mit Code zurück:

Die Datei https://www.herber.de/bbs/user/91561.xls wurde aus Datenschutzgründen gelöscht


Hilfts?
Ciao
Thorsten

AW: Zeile löschen, wenn Kriterium nicht erfüllt
18.07.2014 07:10:36
Ralph
Moin Thorsten,
vielen Dank das sieht soweit schon sehr gut aus. 2 Sachen müsste ich nun noch angepasst haben (Aber nichts Neues):
1. Die blauen Zeilen (Arbeitsplatz:Seite:) müssen auch gelöscht werden
2. Zahlen mit Bindestrich (A6) sollen nicht gelöscht werden.
Es wäre super wenn Du da nochmals anpassen könntest!
Ich kann mich nur wiederholen: DANKE & guten Start in den Tag!

Anzeige
AW: Zeile löschen, wenn Kriterium nicht erfüllt
18.07.2014 10:13:34
Oberschlumpf
Hallo
hier, versuch mal:
https://www.herber.de/bbs/user/91565.xls
was die blauen Zeilen betrifft, hab ich nur die Idee, dass die Zellen in A nach dem Wort "Arbeitsplatz" durchsucht werden - wenn gefunden, dann Zeile löschen.
die einzige Zeile mit "xxxx-xx" (x = Zahlen) wird nun auch NICHT gelöscht.
In Zeile 2, Spalte A steht die Zahl rechtsbündig. Es ist eine Zahl, die Zelle ist aber von dir rechtsbündig formatiert.
Hilfts?
Ciao
Thorsten

AW: Zeile löschen, wenn Kriterium nicht erfüllt
18.07.2014 20:10:14
Ralph
Hallo Thorsten,
super - vielen Dank! Das sieht doch schon sehr sehr gut aus. Habe den Code heute mal über eine Originaldatei laufen lassen, das geht ja trotz vieler Zeilen (ca. 20000) echt schnell.
Eine Bitte hätte ich nun noch, und sei mir bitte nicht böse..
Ich muss noch alle Zeilen gelöscht haben die kürzer 7 Zeichen in Spalte A sind (Oder kleiner 1000000, spielt keine Rolle). Ich würde diesen Vorgang nach dem bisherigen Code durchlaufen lassen, da dann sichergestellt ist dass alle Zahlen in Spalte A auch wirklich Zahlen sind und keine Leerzeichen drin sind. Diese hier sind stehen geblieben, müssen aber auch mit raus (Kann zwischen 100 und 999999 variieren):
2017, 3042, 3087, 3606, 3625, 11170, 124221
Würdest Du mir das noch ergänzen? Kann mich nur wiederholen: DANKE VIELMALS. Ralph

Anzeige
AW: Zeile löschen, wenn Kriterium nicht erfüllt
18.07.2014 22:37:49
Oberschlumpf
Hi Ralph
tausch die letzten zwei Zeilen im Code gegen das hier aus:

For lloRow = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsNumeric(Range("A" & lloRow).Value) Then
If Range("A" & lloRow).Value     Application.ScreenUpdating = True
End Sub

Also im alten Code die hier fetten Zeilen löschen + den kompletten! neuen Code hinzufügen.
Hilfts?
Ciao
Thorsten

AW: Zeile löschen, wenn Kriterium nicht... (erl.)
18.07.2014 22:48:47
Ralph
Nabend Thorsten,
funktioniert einwandfrei! Wünsche Dir ein tolles Weekend, Du hast mir sehr geholfen.
Vielen Dank für Deine Mühe und Dein Durchhaltevermögen!
Wie angekündigt wird nun noch ein 2. Schritt folgen, werde das so gut wie möglich vor- bzw. aufbereiten und dann ein neues Thema eröffnen da es um eine ganz andere Funktion geht. Wird aber wahrscheinlich etwas einfacher.
Merci, Ralph
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige