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

VBA Code - Zeilen löschen, wenn...

VBA Code - Zeilen löschen, wenn...
01.11.2016 22:07:49
Maria
Hallo Leute,
ich habe nun so ziemlich alles ausprobiert, was ich im Netz zu meinem Problem finden konnte. Ich komm nur leider seit Tagen nicht mehr weiter. Vorab: Bin Neuling in diesem Gebiet.
Folgendes Problem:
Ich habe in der Spalte AI jeweils die Einträge "#NV". Ich möchte nun per VBA alle Zeilen löschen, die kein "#NV" drin stehen haben. Meine ersten beiden Zeilen sollen nicht gelöscht werden (sie beinhalten Spaltenüberschriften). Die Spalte AI (ab AI3) müsste bis zur Zelle AI3000 durchgesucht werden.
Ich habe nun mehrere Codes aus dem Netz ausprobiert. Der Code, der schon mal funktioniert ist folgender:
lastrow = Range("AI3000").End(xlUp).Row
For ii = lastrow To 3 Step -1
Select Case Cells(ii, 35).Value
Case "#NV"
'Do nothing
Case Else
Cells(ii, 35).EntireRow.Delete
End Select
Next ii
ACHTUNG: Da ich diesen Code für mehrere Tabellenblätter nutze ist mir aufgefallen, dass die Zeilen mal gelöscht werden und mal nicht. Insbesondere wurden bei einer zwei-zeiligen Tabelle, die eine Zeile gelöscht (war auch richtig so, denn in der Spalte AI war ein "#NV"). Aber sobald die Tabelle mehr Zeilen hat, werden die Zeilen nicht mehr gelöscht (obwohl ein "#NV" in AI drin steht).
Ich komme einfach nicht weiter und freue mich über jede Rückmeldung!
Grüße Maria

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code - Zeilen löschen, wenn...
01.11.2016 22:19:26
Daniel
HI
da wäre zunächst zu klären, was genau in den Zellen steht:
a) der Text #NV
b) eine Formel, die den Bezugfehler ergibt und somit als Ergebnis den Fehlerwert #NV hat
c) das ehemalige Formelergebnis "Bezugfehler", welches durch kopieren und einfügen als Wert in einen "Bezugfehler" (ohne Formel) erzeugt wurde.
Gruß Daniel
AW: VBA Code - Zeilen löschen, wenn...
01.11.2016 22:31:08
Maria
Hallo Daniel,
das #NV ist eine Mischung aus 1 und 2 würde ich sagen.
Es ist ursprünglich ein Bezugsfehler gewesen (muss es auch sein). Die Spalte AI hat somit ursprünglich eine Formel enthalten, die den Wert #NV ausspuckte. Da ich nicht wollte, dass eine Formel hinterlegt ist und ich nicht per Hand kopiere und den Wert einfüge, habe ich das per VBA gelöst.
In jedem Fall handelt es sich in der Spalte AI eigentlich nur um einen Text.
Anzeige
AW: VBA Code - Zeilen löschen, wenn...
02.11.2016 00:08:27
Daniel
Hi
würde ich so lösen (erstmal von von Hand ausprobieren und wenns funktioniert, kannst du die Methode ja immer noch mit VBA ausführen lassen)
1. in einer Hilfsspalte am Tabellenende von der 3. bis zur letzten Zeile folgende Formel eintragen:
=Wenn(IstNV(AI3);Zeile();Wenn(AI3="#NV";Zeile();0))

das kennzeichnet alle Zeilen mit #NV mit der Zeilennummer, egal ob durch den Bezugsfehler oder ob das so als Text drin steht.
2. Schreibe in die erste überschriftenzeile die 0 und in die zweite Überschriftenzeile die 1
3. Wende auf die ganze Tabelle (incl der Überschriftenzeilen und der Hilfsspalte) die Funktion DATEN - DATENTOOLS - DUPLIAKTE ENTFERNEN an.
Gib dabei die Hilfsspalte als Kriterium an und wähle die Option "keine Überschrift"
4. Lösche die Hilfsspalte wieder
wie gesagt, erstmal probieren obs funktioniert, das ganze mit Hilfe des Recorders in VBA umzuschreiben sollte kein größeres Problem sein, da du ja nur eine Formel und zwei Werte einfügen musst und danach eine Menüfunktion auslösen musst.
Gruß Daniel
Anzeige
AW: VBA Code - Zeilen löschen, wenn...
02.11.2016 11:05:48
Maria
Hallo nochmal!
Ich hab deinen Vorschlag eben ausprobiert und anschließend den Recorder zum Aufzeichnen genutzt, funktioniert prima. An diese Lösung hab ich nie gedacht. Es werden also die Zeilen gelöscht, die eine 0 ausspucken (da diese Zeilen in der Spalte AI kein #NV drin stehen haben). Das geschieht über "Duplikate". Die 0 tragen wir ja händisch in die Spaltenüberschrift oben ein und vergewissern somit, dass bei einer 0 ein Duplikat vorhanden ist.
Funktioniert einwandfrei! Ich danke dir vielmals!!

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige