PDA

Vollständige Version anzeigen : Alles löschen ausser bestimmten Werten


archi01
18.07.2014, 07:54
Hallo,
ich habe eine längere Tabelle mit verschiedenen Einträgen. Alle Werte stehen in der Spalte A. Da sind Datumswerte, Buchstaben und Zahlen drin. Und Einträge (Produktnummern) die folgender Syntax gehorchen (z=Ziffer; b=Buchstabe):
zzzbzzzzzz
Diese Werte stehen immer allein in einer Zelle, es sind jedoch unterschiedlich viele Leerzeichen davor. In der Zeile, in welcher die Produktnummer steht ist sonst kein weiterer Eintrag.
Ich weiß nun nicht wie ich in der Tabelle schnell alle Einträge bis auf die Produktnummern löschen kann. Es sollen nicht nur die Einträge sondern immer gleich die ganzen Zeilen gelöscht werden, sodass am Schluss eine durchlaufende Tabelle mit Produktnummern bleibt.
Leider kann ich kein VBA.
Es wäre toll, wenn mir da jemand helfen könnte.
Schon mal vielen Dank und Gruß
Andreas

jack_D
18.07.2014, 08:39
Hallo Archi

ein guter Anfang wär eine Mustermappe

Grüße

EarlFred
18.07.2014, 08:47
Hallo Andreas,

probier mal:
Option Explicit

Sub alleswegbisaufzzzbzzzzzz()
Dim i As Long
With ActiveSheet
For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 '2 ist eine Annahme, wenn die erste Zeile eine Überschrift hat
If Not .Cells(i, 1).Value Like "*###[A-z]######" Then
.Cells(i, 1).EntireRow.Font.ColorIndex = 3 ' .Cells(i, 1).EntireRow.Delete
End If
Next i
End With
End Sub

Wenn der Code tut, was er soll (er färbt erstmal nur die Schrift rot), tausche die kommentierte Zeile aus.

Grüße
EarlFred

archi01
18.07.2014, 09:16
Hallo jack_D,
geht leider hier nicht. Darf ich nicht hochladen. Ist nicht so, dass ich mir die Arbeit nicht machen wollte.
Dachte halt das es auch so klar werden könnte.

Gruß
Andreas

archi01
18.07.2014, 09:18
Hallo EarlFred,
PERFEKT! :)
Toll und Danke.
Aber was muss ich denn nun einsetzen, damit nicht rot sonder tot?

Gruß
Andreas

archi01
18.07.2014, 09:20
Hallo EarlFred,
ah sehe gerade wie Du das meinst. Mache mich gleich mal ans Werk ;)
Vielen Dank für die schnelle Hilfe.
Gruß
Andreas

EarlFred
18.07.2014, 09:59
Hallo Andreas,

diese Zeile
.Cells(i, 1).EntireRow.Font.ColorIndex = 3
ersetzt Du komplett durch diese Zeile:
.Cells(i, 1).EntireRow.Delete

Ich kenn Dich doch mit Deinen 4 linken VBA-Händen mit jeweils 8 Daumen - ich schreib doch schon extra alles hin, was Du tun musst. ;)

Grüße
EarlFred

archi01
18.07.2014, 10:13
Hallo EarlFred,
ja das stimmt :D
Du hast mir auch schon echt oft geholfen.
Dafür mal einen dicken pokal
:winner:

Gruß
Andreas