Hallo zusammen,
ich möchte per VBA folgenden tun.
In meiner Tabelle gibt es verschiedene Partner. Diese habe ich in meiner Sub bereits ausgelesen und zusammengefasst. Danach möchte ich pro Partner filtern und wenn in der Spalte Belegart nur "KA" vorkommt soll alles von diesem Partner gelöscht werden.
Beispiel:
Zuordnung |
Belegnr |
Belegart |
SK |
Fä |
Ausgl.bel. |
Text |
PartGs |
Belegdatum |
9820000048 |
2100001127 |
KA |
|
@1V\Qfällig@ |
|
*9820000048 29.02.2020 |
LDE020 |
29.02.2020 |
Zuordnung |
Belegnr |
Belegart |
SK |
Fä |
Ausgl.bel. |
Text |
PartGs |
Belegdatum |
MGB416 |
2100000547 |
KZ |
|
@AG\Qüberfällig@ |
|
MGB416 - IC Jan 2020 |
MGB416 |
28.01.2020 |
RIN10139 |
2100001131 |
KA |
|
@AG\Qüberfällig@ |
2400001278 |
*RIN10139 24.02.2020 |
MGB416 |
24.02.2020 |
RIN10139 |
2600001785 |
AV |
|
@AG\Qüberfällig@ |
2400001278 |
RIN10139 |
MGB416 |
26.02.2020 |
Hier in meinem Beispiel sollen die Einträge vom Partner MGB416 in der Liste bleiben, aber die Einträge von der LDE020 gelöscht werden, da nur die Belegart KA vorkommt.
Public Sub Splitten()
Dim avPartner As Variant
Dim vntItem As Variant
Dim avBelegart As Variant
Dim objDictionary As Object
Dim objWorkbook As Workbook
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
'Definiert den Bereich in dem er sucht bzw. zählt
With T2_OffenePosten
avPartner = .Range(.Cells(2, 8), .Cells(.Rows.Count, 8).End(xlUp)).Value2
End With
'Fasst die Partner zusammen
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
With objDictionary
For Each vntItem In avPartner
.Item(Key:=vntItem) = vbNullString
Next
End With
avBelegart = "KA"
For Each vntItem In objDictionary
Call T2_OffenePosten.Rows(1).AutoFilter(Field:=8, Criteria1:=vntItem)
T2_OffenePosten.ShowAllData
Next
End Sub
Ich weiß nicht, wie ich nach dem filtern prüfen, ob nur die Belegart KA vorliegt.
Freue mich auf antworten.
VG
Maurice
|