AW: Autofilter Makro
17.09.2014 22:08:46
Adis
Hallo
anbei eine Makro Lösung die einfacher sein dürfte wie das herumspielen mit AutoFilter
Die Bereiche sind in Const angegeben. Ich gehe davon aus das Rewe und Rasting in der
Spalte B stehen. Sonst bitte abaendern. Die Spalte N dient lediglich als Hilfsspalte
und wird nach dem sortieren automatisch gelöscht. Ich kopiere und lösche die Daten.
Die Case Option kann um beliebig viele Kunden erweitert werden.
Der doofe Trick liegt darin das ich zum Schluss nur Else auswerte.
Const AswBereich = "B1:B1020"
Const IndxSpalte = "N1:N1020"
Sub Makro_alsAutoFilter_Ersatz()
Dim Div As Object, flg As String, i
Set Div = Sheets("Diverse")
'alle Daten in Tabelle Diverse kopieren
Sheets("Aufträge").Range("A1:M1020").Copy
Sheets("Diverse").Range("A1").PasteSpecial xlAll
'Hilfsspalte "N" für Lauf-Nr zum sortieren
Div.Range(IndxSpalte).Resize(1, 1).Value = 1
Div.Range(IndxSpalte).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
'Schleife um alle Kunden auszuwerten (Else wird mit No ausgewertet)
For Each i In Div.Range(AswBereich)
flg = "Ja" 'Flag zum löschen
'Stamm Kunden auswerten, sonstige löschen
'** die Liste kann beliebig erweitert werden
Select Case i.Value
Case "Rewe Stelle"
Case "Rewe Lehrte"
Case "Rewe Köln-Langel"
Case "Rasting Meckenheim"
Case "Rasting Essen"
Case Else: flg = "No"
End Select 'alle Kunden ausser sonstige löschen
If flg = "Ja" Then Div.Cells(i.Row, "A").Resize(1, 14) = Empty
Next i
'Bereich nach Lauf Nr sortieren
Div.Range("A1:N1020").Sort Key1:=Div.Range("N1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Hilfsspalte löschen
Div.Columns("N").ClearContents
End Sub
Gruss Adis