AW: Tabelle durchsuchen
25.12.2006 12:06:16
Herby
Hallo Peter,
hast recht, warum soll man es mit der Hand machen wenns per Makro automatisch geht.
Das Makro Bescherung ruft am Schluss noch das Makro Dublikate auf. Dieses filtert über den Spezialfilter die Dublikate raus. Dazu braucht es aber eine "Hilfsspalte" diese kannst du irgendwohin legen, wo es nicht stört. Im Makro ist es aktuell die Spalte B.
Nach dem Durchlauf wird diese Spalte wieder gesäubert.
Viele GRüße
Herby
Sub Bescherung()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim Zelle As Range
Dim i As Long
Set wks1 = Worksheets("Quelldaten")
Set wks2 = Worksheets("Ergebnis")
i = 7
For Each Zelle In wks1.Range("A1:D100")
If wks1.Cells(Zelle.Row, Zelle.Column).Font.Italic = True Then
i = i + 1
wks2.Cells(i, 1) = Zelle
End If
Next
Set wks1 = Nothing
Set wks2 = Nothing
dublikate
End Sub
Sub dublikate()
Dim wks1 As Worksheet
Dim Bereich As Range
Dim lZ1 As Long, lZ2 As Long
Set wks1 = Worksheets("Ergebnis")
lZ1 = wks1.Cells(wks1.Rows.Count, 1).End(xlUp).Row
Set Bereich = wks1.Range("A8:A" & lZ1)
'Bereich.AdvancedFilter Action:=xlFilterInPlace, criteriaRange:=Bereich, unique:=True
Bereich.AdvancedFilter Action:=xlFilterCopy, criteriaRange:=Bereich, CopyToRange:=wks1.Range("B8"), unique:=True
wks1.Range("A8:A" & lZ1).Clear
lZ2 = wks1.Cells(wks1.Rows.Count, 2).End(xlUp).Row
wks1.Range("B8:B" & lZ2).Copy wks1.Range("A8")
wks1.Range("B8:B" & lZ1).Clear
End Sub