Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Hilfe

Forumthread: VBA Hilfe

VBA Hilfe
05.08.2015 18:49:19
Jürgen
Hallo ExcelFreunde,
ich möchte gerne alle Zeilen gelöscht haben,
die nicht solche Werte haben wie 1-01-01-10, ( immer mit Bindestriche )
Alle Zahlen wie 1, 35, oder Texte sollen die Zeilen gelöscht und nachgerutscht werden.
Wäre sowas möglich ?
https://www.herber.de/bbs/user/99350.xlsx
Besten Dank und hoffe ihr habt eine Idee
LG.
Jürgen

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Hilfe
05.08.2015 18:53:17
Daniel
Hi
Autofilter einrichten, dann im Autofiltermenü:
Textfilter - Enthält nicht: - (Bindestrich eingeben
dann die Zeilen löschen und Autofilter aufheben.
die ausgeblendeten Zeilen werden nicht bearbeitet.
Gruß Daniel

VBA Hilfe Nachtrag
05.08.2015 18:59:23
Jürgen
Hallo Daniel,
ich bräuchte so was leider in VBA, den die Liste wird weiter gearbeitet und darf kein Filter enthalten werden. Leider :-(
Hab gerade gesehen, das 1-01-01-01,01 vorkommt, die müssten auch gelöscht werden, da ein Komma vorhanden ist.
Danke ersteinmal für deinen ersten Tip

Anzeige
AW: VBA Hilfe Nachtrag
05.08.2015 19:09:37
Daniel
Hi
du kannst den Filter auch per Makro ansteuern, der Recorder ist dein Freund.
das Makro kann auch den Filter wieder aufheben.
ne andere Löschmethode ist folgende:
1. trage in einer Hilfsspalte am Tabellenende eine Formel ein, die alle Zellen die gelöscht werden sollen mit 0 kennzeichnet und die die Stehenbleiben sollen mit der aktuellen Zeilennummer
2. schreibe in die erste Zeile der Hilfsspalte ebenfalls die 0
3. wende auf das ganze die Funktion DATEN - DATENTOOLS - DUPLIAKTE ENTFERNEN an, mit der Hilfsspalte als Kriteriumsspalte und der Option "keine Überschrift"
4. lösche die Hilfsspalte wieder.
auch das ist relativ einfach mit Hilfe des Recorders zu programmieren.
sieht als Code so aus:
Sub lösch()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=if(iserror(find(""-"",RC1)),0,if(iserror(find("","",RC1)),Row(),0))"
.Cells(1, 1).Value = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With
End Sub
Gruß Daniel

Anzeige
AW: VBA Hilfe Nachtrag
05.08.2015 19:14:37
Jürgen
Hallo Daniel,
im Test schaut es super aus, ich werde es morgen in meiner Liste Testen die ca. 78000Zeilen hat.
Bin mal gespannt :-)
Gebe dir morgen bescheid.
Danke
LG Jürgen

AW: VBA Hilfe Nachtrag
05.08.2015 19:20:59
Daniel
Bei 78.000 Zeilen ist das die beste Methode.
das RemoveDuplicates ist die einzige Funktion, die in grossen, unsortierten Datenmengen beim Zeilenlöschen schnell ist.
ansonsten müssen grosse Listen vorher sortiert werden, so dass die zu löschenden Zeilen einen lückenlos zusammenhängenden Zellblock bilden.
Gruß Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige