AW: kleine Nachfrager
05.08.2008 15:59:14
Daniel
Hi
mit den Hyperlinks ist das natürlich schwierig, das verbietet natürlich das umsortieren.
da würde aber lieber die Werte der Doppelten in ein neues Blatt kopieren und dann ein kleines Makro,daß beim Anklicken den Autofilter entsprechend im Tabellenblatt setzt.
dann Fallen die Hyperlinks weg (ich finde die sowieso meist lästig)
aber auch wenn du Hyperlinks haben willst, kann man da u.U. schneller gestalten.
probier mal das Makro hier aus, ich konnte es mangels Daten leider nicht testen.
Funktionsweise ist so:
- orginalreihenfolge sichern
- daten Sortieren
- Doppelte Finden
- original-ZeilenNr der Doppelten in Prüfliste Schreiben
- Daten wieder zurücksortiern in alte Reihenfolge
- in Prüfliste Hyperlinks erstellen.
probiers mal aus, wenn nicht das erstellen der Hyperlinks der Zeitfresser ist, dann sollte das hier deutlich schneller sein.
Gruß, Daniel
Sub TestDoppelte()
Dim sp As Long, ze As Long
Dim Zelle As Range
With Sheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell)
sp = .Column + 1
ze = .Row
End With
With Sheets("Tabelle1")
'--- Originalreihenfolge sichern
With Range(.Cells(1, sp), .Cells(ze, sp))
.FormulaLocal = "=Zeile()"
.Formula = .Value
End With
'--- Doppelte finden
With Range(.Cells(2, sp + 1), .Cells(ze, sp + 1))
.FormulaLocal = "=WENN(S2="""";ZEILE();WENN(ODER(S2=S1;S2=S3);"""";ZEILE()))"
.Formula = .Value
.EntireRow.Sort , key1:=Cells(2, sp + 1), header:=xlNo
.SpecialCells(xlCellTypeBlanks).Offset(0, -1).Copy _
Destination:=Sheets("Prüflist").Range("C2")
End With
'--- Zurücksortieren
.UsedRange.Sort key1:=.Cells(1, sp), oder1:=xlAscending, header:=xlNo
.Columns(sp).Resize(, 2).Delete
End With
'--- Hyperlinks erzeugen
With Sheets("Prüflist")
Set Zelle = .Range("C2")
Do Until Zelle.Value = ""
ze = Zelle.Value
Zelle.Clear
.Hyperlinks.Add Anchor:=Zelle, Address:="", _
SubAddress:="Tabelle1!" & Cells(ze, 8).Address, _
TextToDisplay:="Tabelle1!" & Cells(ze, 8).Address
Loop
End With
End Sub