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

Liste Filtern durch Spalten Vergleich

Liste Filtern durch Spalten Vergleich
30.10.2017 11:17:06
Henning
Hallo Zusammen.
Ich bin wirklich blutiger Anfänger was VBA Codes selber schreiben betrifft. Bisher konnte ich mich mit nachvollziehen und anpassen von Codes aus dem Netz über Wasser halten. Doch bei meiner jetzigen Aufgabe hilft mir das nicht mehr weiter.
Ich habe folgendes vor:
In einer Excel-Datei habe ich zwei Tabellen Blätter "Puffer" und "Alarmfilter".
In Puffer stehen in Spalte "G" aberhunderte Einträge untereinander. Die meisten kommen öfter vor.
In Alarmfilter stehen in Spalte "A" die Alarme/Einträge die mich interessieren.
Ich versuche eine Makro zuschreiben, das jede Zelle in "Puffer" Spalte "G" mit allen Einträgen in "Alarmfilter" Spalte "A" vergleicht. Wenn der Eintrag in "Puffer" "G" nirgends in "Alarmfilter" "A" vorkommt soll die Entsprechende Zeile In "Puffer" gelöscht werden.
Taucht der "Puffer" Eintrag aber in der Alarmliste auf, soll er stehen bleiben.
Ziel ist also das am ende in "Puffer" nur noch Zeilen Stehen die in Spalte "G" Einträge/Alarme haben die für mich interessant und in "Alarmfilter" gelistet sind.
Nach dem ich im Netz nicht fündig geworden bin habe ich mich selbst (bisher vergeblich) am schreiben versucht. Komme aber nicht weiter. Wenn mir jemand helfen könnte meine Denkfehler zu beseitigen/Verstehen oder einen neuen Ansatz hätte wäre ich froh.
Mein letzter Versuch ist folgender:
Dim PuZeile As Long
Dim PuZeileMax As Long
Dim AlZeile As Long
Dim ALZeileMax As Long
Dim ZaehlPu As Long
Dim ZaehlAl As Long
With Worksheets("Puffer")
PuZeileMax = .UsedRange.Rows.Count
For PuZeile = PuZeileMax To 2 Step -1
With Worksheets("Alarmfilter")
AlZeile = .UsedRange.Rows.Count
For AlZeile = ALZeileMax To 2 Step -1
ZaelPu = Worksheets("Puffer").UsedRange.Rows.Count
ZaelAL = Worksheets("Alarmfilter").UsedRange.Rows.Count
If Worksheets("Alarmfilter").Cells(ZaelAL, 7) = Worksheets("Puffer").Range("G", PuZeile) Then
ZaelAL = ZaelAL - 1
Else: Worksheets("Puffer").Rows(PuZeile).Delete
End If
Next
End With
Next
End With

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste Filtern durch Spalten Vergleich
30.10.2017 13:25:42
Henning
Moin zurück!
Danke für den Tipp. Leider bringen mir Formeln nichts.
Hätte es vielleicht dazuschreiben sollen... ich Töffel... Das ist nur ein Teil des Code. Die Tabelle wird vorher und später noch weiter mit VBA (Das habe ich mir schon erarbeitet) bearbeitet. Das Blatt "Puffer" muss letzten Endes gelöscht werden. Daten werden vorher noch kopiert. "Puffer" existiert nur zum formatieren und filtern.
Gruß
Henning
Anzeige
Beispielmappe bitte
30.10.2017 14:20:52
Werner
Hallo Henning,
mach mal eine Beispielmappe die in ihrer Struktur deinem Original entspricht und lade sie hier hoch.
Gruß Werner
AW: Beispielmappe bitte
30.10.2017 14:42:46
Henning
Ups den ungelöst-Harken vergessen.
AW: Liste Filtern durch Spalten Vergleich
30.10.2017 14:52:45
Günther
Moin,
nur zum Verständnis (aller Leser):
Mit Power Query hast du keine einzige Zelle mit einer (sichtbaren) Formel. Hier wird aufbauend auf deinem Beispiel (ja, die Datei ist angekommen) "nur" eine gefilterte Datei erzeugt, und das mit wenigen Mausklicks.
Anzeige
AW: Liste Filtern durch Spalten Vergleich
30.10.2017 15:21:09
Henning
Moin.
Gut zu wissen.
Passt für mich leider dennoch nicht wegen der späteren Weiterverarbeitung der Daten.
Werde es aber mal im Hinterkopf behalten.
Kann ja nie schaden.
Gruß
Henning
AW: Liste Filtern durch Spalten Vergleich
30.10.2017 20:19:18
Gerd
Hallo Henning,
noch etwas Kurzes.
Sub Auspuff()
Dim A As Worksheet, P As Worksheet, lngRow As Long, rngA As Range
Set A = Worksheets("Alarmfilter")
Set rngA = A.Range(A.Cells(2, 1), A.Cells(A.Rows.Count, 1).End(xlUp))
Set P = Worksheets("Puffer")
For lngRow = P.Cells(P.Rows.Count, 7).End(xlUp).Row To 2 Step -1
If WorksheetFunction(rngA, P.Cells(lngRow, 7).Value) > 0 Then P.Rows(lngRow).Delete
Next
Set rngA = Nothing: A = Nothing: Set P = Nothing
End Sub
Gruß Gerd
Anzeige
AW: Liste Filtern durch Spalten Vergleich
30.10.2017 23:48:42
Werner
Hallo Gerd,
fehlt da nicht was?
If WorksheetFunction(rngA, P.Cells(lngRow, 7).Value) > 0 Then P.Rows(lngRow).Delete
Außerdem möchte Henning doch die gleichen Daten behalten oder habe ich mich da verlesen.
Gruß Werner
AW: Liste Filtern durch Spalten Vergleich
31.10.2017 04:40:00
Gerd
Hallo Werner,
jaja, da fehlt noch mehr. :-)
Sub Auspuff2()
Dim A As Worksheet, P As Worksheet, lngRow As Long, rngA As Range
Set A = Worksheets(1)
Set rngA = A.Range(A.Cells(2, 1), A.Cells(A.Rows.Count, 1).End(xlUp))
Set P = Worksheets(2)
For lngRow = P.Cells(P.Rows.Count, 7).End(xlUp).Row To 2 Step -1
If WorksheetFunction.CountIf(rngA, P.Cells(lngRow, 7).Value) = 0 Then P.Rows(lngRow).Delete
Next
Set rngA = Nothing: Set A = Nothing: Set P = Nothing
End Sub
Gruß Gerd
Anzeige
AW: Liste Filtern durch Spalten Vergleich
31.10.2017 09:24:36
Werner
Hallo Gerd,
die Zuweisung der Blätter passt auch noch nicht. Und rngA muss ab Zeile 1 sein.
Sub Auspuff2()
Dim A As Worksheet, P As Worksheet, lngRow As Long, rngA As Range
Set A = Worksheets(2)
Set rngA = A.Range(A.Cells(1, 1), A.Cells(A.Rows.Count, 1).End(xlUp))
Set P = Worksheets(3)
For lngRow = P.Cells(P.Rows.Count, 7).End(xlUp).Row To 2 Step -1
If WorksheetFunction.CountIf(rngA, P.Cells(lngRow, 7).Value) = 0 Then P.Rows(lngRow).Delete
Next
Set rngA = Nothing: Set A = Nothing: Set P = Nothing
End Sub
Die Schleife braucht etwa 6 Sekunden bis sie durch ist. ;-)
Gruß Werner
Anzeige
AW: Endegelände
31.10.2017 11:05:02
Gerd
Hi Werner,
das eine ist vermutlich unrichtig, das andere Pillepalle u. zum dritten habe ich entgegen dir nie eine Behauptung aufgestellt.
Jetzt ist es aber genu. :-)
Gruß Gerd
AW: Liste Filtern durch Spalten Vergleich
31.10.2017 10:55:40
Henning
Hallo zusammen!
Kann es zuhause leider nicht testen.
Werde es am Donnerstag als erstes versuchen.
Danke schon mal vor ab!
Schöne(n) Feiertag(e)
Henning
AW: Liste Filtern durch Spalten Vergleich
02.11.2017 07:36:15
Henning
Guten Morgen!!!
@Werner: Funktioniert hervorragend! Danke viel mal. Werde mal versuchen zu verstehen was du da gezaubert hast.
@Gerd: Deins habe ich noch nicht versucht. Werde es aber bei Zeiten noch probieren.
Gruß
Henning
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
02.11.2017 08:54:12
Werner

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige