Hallo Peekey
Neben Lösungen mit Formeln oder mit PQ gibt es auch noch die guten alten Makros.
Folgendes Makro erstellt eine neue Liste, beginnend in Zelle i1, mit allen Verträgen, außer jene, welche 2380 in der LA-Spalte stehen haben.
Es funktioniert bei Deiner Datei, die Du in Beitrag #3 reingestellt hast.
Code:
Sub peekey()
Dim b As Range 'Gruss von Raoul21
Dim d, q, z As Long
Dim Filter As Object, Entf As Object
Set b = Range("A1").CurrentRegion
d = b.Cells
Set Filter = CreateObject("scripting.dictionary")
For z = LBound(d, 1) To UBound(d, 1)
Filter.Item(CStr(d(z, 2))) = vbNullString
Next z
Set Entf = CreateObject("scripting.dictionary")
For z = LBound(d, 1) To UBound(d, 1)
If d(z, 6) = 2380 Then Entf.Item(CStr(d(z, 2))) = vbNullString
Next z
For Each q In Entf.keys
Filter.Remove q
Next q
b.AutoFilter 2, Filter.keys(), xlFilterValues 'Tabelle wird gefiltert
b.Copy Range("i1")
b.AutoFilter
End Sub
- Drücke ALT+F11 um in den VBA Editor zu kommen
- Doppelklick links auf 'Tabelle1 (Tabelle1)'
- in das rechte Fenster o.g. Code reinkopieren
- Klick mit der Maus innerhalb des Codes (zwischen Sub...End Sub)
- Drücke F5
- Schau Dir das Ergebnis in Deinen Tabellen an
Du kannst das Makro nach Belieben anpassen.
Wenn Du zum Makroaufbau Fragen hast, nur zu.
Hoffentlich funktioniert es fehlerfrei.
Gruss, Raoul