Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1480to1484
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 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

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige