AW: Danke für die Rückmeldung! mit Text
05.02.2013 16:17:09
Klaus
Hi Uta,
das sollte es bringen:
Option Explicit
Sub MakeNewFilteredList()
Dim lRow As Long
With Sheets("Tabelle2")
'letzte Zeile
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
'Autofilter, falls gesetzt, entfernen
If .AutoFilterMode Then .Cells.AutoFilter
'Formel für Nummer_neu
.Range("C2:C" & lRow).FormulaR1C1 = "=IF(LEFT(RC[-2],9)=""Abschnitt"",RC[-2],R[-1]C)"
'Nummern in A überschreiben
.Range("A2:A" & lRow).Value = .Range("C2:C" & lRow).Value
'Hilfsspalte löschen
.Range("C2").EntireColumn.ClearContents
'Formeln für Filterung
.Range("D1").Value = "FILTER"
.Range("D2:D" & lRow).FormulaR1C1 = "=IF(COUNTIF(Referenztabelle!C[-3],RC[-2])>=1,""xxx"","" _
"")"
'Autofilter über D aktivieren
.Range(.Cells(1, 4), .Cells(lRow, 4)).AutoFilter
'und Filtern
.Range("$D$1").AutoFilter Field:=1, Criteria1:="xxx"
'gefilterte Liste kopieren
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A2:B" & lRow).Copy
'neues Blatt erstellen
Sheets.Add
'Liste einfügen
ActiveSheet.Range("A1").PasteSpecial xlPasteValues
'zurück aufs Hauptblatt
.Activate
'Autofilter wieder rauswerfen
If .AutoFilterMode Then .Cells.AutoFilter
'Hilfsspalte D löschen
.Range("D2").EntireColumn.ClearContents
End With
End Sub
Ich mach Feierabend, wenn noch was ist schaue ich morgen wieder rein.
Grüße,
Klaus M.vdT.