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

Schleife zum Filtern von Data

Schleife zum Filtern von Data
26.01.2022 13:14:51
Data
Moin zusammen,
ich würde gerne mit VBA eine Liste von daten filtern, wenn eine bestimmte Bedingung erfüllt ist.
Spalte A gibt die Hierarchie-Ebene an; Spalte B gibt die Bezugsart an
Z.B. wenn bei Spalte B "Intern" steht dann sollte alles was unter "Intern" steht gelöscht werden bis bei Spalte A eine neue Hierarchie-Ebene anfängt bzw. bis die gleiche Hierarchie-Ebene wieder vorkommt.
Siehe Foto (Die Felder in Gelb sollten gelöscht werden)
Userbild
Ich habe mit einer Do-Loop Schleife versucht aber leider finde ich nicht den richtigen Ansatz.
Vorab vielen Dank!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife zum Filtern von Data
26.01.2022 14:11:00
Data
Hallo,
der einfachheithabler würde ich das in zwei Schritten machen.
1. Zellen die gelöscht werden müssen identifizieren und die Ebene "leer" machen.
2. Die leeren Zeilen löschen.
Speziell den zwiten Schritt könnte man schneller machen (speziell wenn Deine Liste sehr lang ist, aber zum Erklären ist es wohl so einfacher.

Sub HierarchiebenLöschen()
Dim i As Double
Dim LetzteZeile As Double
Dim Ebene As Integer
Dim xs As Worksheet
Dim LöschRng As Range
Set xs = ActiveSheet
'letzte Zeile ermitteln
LetzteZeile = xs.Cells(xs.Rows.Count, 1).End(xlUp).Row
For i = 2 To LetzteZeile
If xs.Cells(i, 2).Value  "Intern" Then
If xs.Cells(i, 1).Value > Ebene Then
xs.Cells(i, 1).Value = "" 'ebene leer machen
End If
Else
Ebene = xs.Cells(i, 1).Value
End If
Next i
'jetzt leere Zellen löschen
LetzteZeile = xs.Cells(xs.Rows.Count, 1).End(xlUp).Row
For i = LetzteZeile To 2 Step -1
If xs.Cells(i, 1).Value = "" Then xs.Rows(i).Delete shift:=xlUp
Next
Set xs = Nothing
End Sub
Grüße Theo
Anzeige
AW: Schleife zum Filtern von Data
26.01.2022 15:07:54
Data
Hallo
Löschen immer von unten nach oben

Sub Löschen()
Dim LR As Long, i As Long, Bis As Long
Dim EB As Integer, Such As String
Such = "Intern"
LR = Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte A
Bis = LR
For i = LR To 2 Step -1
EB = Cells(i, 1)
If Cells(i - 1, 1) > EB Then
Bis = i - 1
End If
If Cells(i - 1, 2) = Such Then
Rows(i).Resize(Bis - i + 1).Delete xlUp
Bis = i - 1
End If
Next
End Sub

LG UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige