Hyperlink in Tabelle

23/03/2010 - 18:32 von Berthold Erfkämper | Report spam
Hallo NG-Gemeinde,

ich habe der Übersicht halber mehrere Hyperlinks in eine grosse / lange
Tabelle eingefügt. Wenn ich diese nun aufrufe so klappt das sehr gut.
Was mich allerdings noch stört ist die Tatsache das zwar die korrekte
Zelle angespungen wird, diese sich aber leider nicht in der ersten Zeile
befindet. Sondern unter Umstànden in der letzten anzeigbaren Zeile. Kann
man dieses in irgend einer Form beeinflussen? So dass die per Hyperlink
gewünschte Zelle immer in der obersten anzeigbaren Zeile erscheint?

Danke.

Berthold
 

Lesen sie die antworten

#1 Peter Schleif
24/03/2010 - 08:45 | Warnen spam
Berthold Erfkàmper schrieb am 23.Mrz.2010 18:32 Uhr:

ich habe der Übersicht halber mehrere Hyperlinks in eine grosse / lange
Tabelle eingefügt. [...] So dass die per Hyperlink
gewünschte Zelle immer in der obersten anzeigbaren Zeile erscheint?



Meines Wissens nach nur mit VBA. Füge dazu den Code in den VBA-Bereich
deiner Tabelle ein.

Peter


Private Declare Function GetDC Lib "user32" ( _
ByVal hwnd As Long) As Long

Private Declare Function GetDeviceCaps Lib "gdi32" ( _
ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Declare Function ReleaseDC Lib "user32" ( _
ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim faktor_x As Double
Dim faktor_y As Double
Dim dc As Long

dc = GetDC(0)
faktor_x = WorksheetFunction.Max(1, GetDeviceCaps(dc, 88) / 72)
faktor_y = WorksheetFunction.Max(1, GetDeviceCaps(dc, 90) / 72)
ReleaseDC 0, dc

ActiveWindow.ScrollIntoView _
CLng(WorksheetFunction.Max(0, _
(ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left) _
- ActiveWindow.PointsToScreenPixelsX(0)) * faktor_x)), _
CLng(WorksheetFunction.Max(0, _
(ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top) _
- ActiveWindow.PointsToScreenPixelsY(0)) * faktor_y)), _
10, 10, True
End Sub

Ähnliche fragen