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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige