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

VBA nicht löschen bei....

Forumthread: VBA nicht löschen bei....

VBA nicht löschen bei....
21.03.2016 08:33:16
Svenja

Guten morgen,
ich steh gerade vor ein Problem:-(
Ich hab eine sehhhr lange Liste und möchte gerne, dass Alle Zeilen gelöscht werden die nicht die diese Wörter ( s.u) in der Spalte B ab Zeile 4 vorhanden ist.
LP_KK1
LP_KK2
KF_25x80
Die Zeilen sollten dann nachgerutscht werden.Damit die Liste nicht mehr so lange ist.
Wie geht sowas ?
Bitte um Hilfe.
Danke
Svenja

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nix VBA
21.03.2016 08:41:54
RPP63
Moin!
Setze einen Autofilter und lasse Dir alle Werte außer Deinen dreien anzeigen (Haken abwählen).
Markiere die erste sichtbare Zelle unterhalb der Überschrift,
Strg+Umschalt+Pfeil unten,
Rechtsklick, "Zellen löschen", "Ganze Zeile"
(Es werden nur die sichtbaren Zeilen gelöscht!)
Filter aufheben, fertig.
Gruß Ralf

Anzeige
AW: Nix VBA
21.03.2016 08:57:30
Svenja
Hallo,
ja das weiß ich, ich brauche das aber für einen zwischencode fürs Makro.
Deswegen in VBA

AW: VBA nicht löschen bei....
21.03.2016 09:02:21
Werner
Hallo Svenja,
Versuch mal:

Public Sub()
Dim loLetzte As Long
Dim i As Long
Dim Wert1 As String
Dim Wert2 As String
Dim Wert3 As String
Wert1 = "LP_KK1"
Wert2 = "LP_KK2"
Wert3 = "KF_25x80"
loLetzte = Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row 'Tabelle anpassen
For i = loLetzte To 4 Step - 1
If Cells(i, 2) <> Wert1 Or Cells(i, 2) <> Wert2 Or Cells(i, 2) <> Wert3 Then
Rows(i).Delete
End If
Next i
Ende Sub
Konnte aber nicht testen.
Gruß Werner

Anzeige
Test1
21.03.2016 09:09:13
Svenja

Sub Makro3()
' Makro3 Makro
Range("A2:E2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$E$4658").AutoFilter Field:=2, Criteria1:=Array( _
"KD2_30x40", "KP2_CCG1", "KP2_CCG2"), Operator:=xlFilterValues
Range("A2:E2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Range("C5").Select
End Sub
So würde es aussehen über Makrorekorder.
Kann ich diesen Code immer verwenden? Egal wie lang die Liste ist?
Wenn nicht, wie muß uch das anpassen?
Danke Svenja

Anzeige
Danke Werner, werde es mal testen
21.03.2016 09:09:52
Svenja
.

AW: VBA nicht löschen bei....
21.03.2016 09:24:40
Daniel
Hi
zum Löschen von vielen Zeilen nimmt man seit Excel 2007 die Funktion DATEN - DATENTOOLS - DUPLIAKTE ENTFERNEN.
hierzu kennzeichnet man per Formel in einer Hilfsspalte alle Zeilen, die gelöscht werden sollen mit einer 0 und die die die stehen bleiben müssen mit der aktuellen Zeilennummer.
Dann schreibt man noch in die Überschriftenzeile die 0 und wendet dann das Duplikateentfernen an mit der Hilfsspalte als Kriterium und der Option "keine Überschrift".
und ja, das funktioniert mit VBA genauso:
With Range(Cells(3, 1), Cells.SpecialCells(xlCellTypeLastCell))
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(IsError(Find("";""&RC2&"";"","";LB_KK1;LP_KK2;KF_25x80;"")),0,Row())"
.Cells(1, 1).Value = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With
das ist eine recht einfache Methode zum Löschen von Zeilen mit Bediungung und ist auch bei sehr grossen Datenmengen sehr schnell.
gruß Daniel

Anzeige
Nachfrage an Daniel
21.03.2016 09:55:02
Svenja
Hallo Daniel, es funktioniert.Danke
Jetzt noch eine Frage.
Wie muss ich den Code ändern, das ich alle
LP_KK1
LP_KK2
KF_25x80
gelöscht haben möchte. GENAU umgekehrt.

AW: Nachfrage an Daniel
21.03.2016 10:01:44
Daniel
Hi
einfach in der IF-Formel die "0" mit dem "Row" tauschen (Wahr-Teil und Falsch-Teil der WENN-Funktion)
.FormulaR1C1 = "=IF(IsError(Find("";""&RC2&"";"","";LB_KK1;LP_KK2;KF_25x80;"")),Row(),0)"

oder bei unveränderter Reihenfolge auf IsNumber anstelle von IsError abfragen.
.FormulaR1C1 = "=IF(IsNumber(Find("";""&RC2&"";"","";LB_KK1;LP_KK2;KF_25x80;"")),0,Row())"
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