Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hyperlink Ziel 'ausrichten'

Hyperlink Ziel 'ausrichten'
TommiH
Hallöchen,
ich habe ein Problem. Ich habe ein Arbeitsblatt (A) in dem mehrere tausend Zeilen Text stehen welcher in mehrere Bereiche unterteilt ist. Über jedem Bereich gibt es eine Überschrift.
Diese Überschriften habe ich nun per VBA als eine Art Index auf ein Arbeitsblatt 'Index' kopiert und Hyperlinks vom Index zu (A) angelegt.
Nun das Problem. Wenn ich auf einen Hyperlink auf 'Index' mit der Maus klicke, dann lande ich brav auf (A) und an der passenden Stelle, ABER! ;) - ich würde den Sprung gerne so ausführen, dass ich auf (A) so lande, das die Zeile ÜBER! dem Sprungziel die oberste Zeile auf dem Bildschirm ist.
Kann man so eine 'Ausrichtung' irgendwie durchführen?
LG,
Tommi
AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:13:57
Josef
Hallo Tommi
kopiere den Code in das Modul der Tabelle mit den Hyperlinks.
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  On Error Resume Next
  Application.Goto Sheets(Left(Target.SubAddress, InStr(1, Target.SubAddress, _
    "!") - 1)).Range(Mid(Target.SubAddress, InStr(1, Target.SubAddress, "!") + 1)), _
    True
  
  On Error GoTo 0
End Sub

Gruß Sepp

Anzeige
AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:26:13
TommiH
Hallo Sepp,
sorry, das verstehe ich nicht. Die Tabelle ist ja nur eine Exceldatei, ohne Module. Wenn ich ein Modul anlege, und den Code da einfüge dann bleibt alles wie es ist. Ein Sprung auf den Link landet beim Link, aber der ist mal unten am Bildschirm, mal oben oder irgendwo dazwischen...
Kannst du das noch etwas erläutern?
LG,
Tommi
AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:32:48
Josef
Hallo Tommi,
ich hab ja nicht gesagt das du ein Modul anlegen sollst, sonder du sollst
den Code in das Modul der Tabelle kopieren.
Rechtsklick auf das Blattregister > Code anzeigen > in das rechte Fenster einfügen.
Gruß Sepp

Anzeige
AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:45:06
TommiH
Hallo Sepp,
fein, was bitte ist das Modul der Tabelle?
Zur Erklärung, ich habe in meiner Arbeitsmappe ja nun 2 Arbeitsblätter (nach meiner Verlinkungsaktion) welches von den beiden nehme ich um den Code zuzufügen? - oder sollte ich das VOR meiner Indexgenerierung machen?
...
Hm, ich habe es nun einmal in das 'Modul' mit dem Indexblatt getan, einmal in das 'Hauptarbeitsblatt' und einmal VOR meiner Indexgenerierung ins 'Hauptarbeitsblatt' (zu dem Zeitpunkt gibt es ja erst nur ein Blatt).
Erfolg - keiner. Der Sprung erfolgt wie immer zum Link aber der ist auf der Seite mal oben, unten, dazwischen...
LG,
Tommi
Anzeige
Wer lesen kann, ...
26.01.2010 17:52:37
Josef
... ist klar im Vorteil.
In meiner ersten Antwort schrieb ich: "kopiere den Code in das Modul der Tabelle mit den Hyperlinks."
Und in der Zweiten: "Rechtsklick auf das Blattregister > Code anzeigen > in das rechte Fenster einfügen."
Gruß Sepp

AW: Wer lesen kann, ...
26.01.2010 18:01:23
TommiH
Right - zu dem mit dem Lesen...
Ich habe doch geschrieben, ich habe es in beide! Blätter eingefügt (erst ins eine, dann ins zweite, dann in beide) und sogar einmal VOR meiner Aktion - Erfolg - keiner. Es ändert sich leider nichts.
Ich habe sogar nach jeder Einfügeaktion erst ausprobiert aber auch nochmal die Datei gespeichert und neu aufgerufen und dann probiert. Wie gesagt, kein Erfolg.
LG,
Tommi
Anzeige
AW: Wer lesen kann, ...
26.01.2010 18:08:42
Josef
Hallo Tommi,
hast du die Links per Formel erstellt?
Gruß Sepp

AW: Wer lesen kann, ...
27.01.2010 09:03:12
TommiH
Hallo Sepp,
ähm, nein, per VBA-Programm. Der Scriptausschnitt hier den ich hier mal bekommen habe tut ansonsten genau das was er soll ;)
With objWks
Maxzeilenzahl = .Cells(.Rows.Count, 1).End(xlUp).Row
For Zeile = 1 To Maxzeilenzahl
v1 = Left(.Cells(Zeile, 1), 2)
If v1 = "S." Or v1 = "Q." Or v1 = "Z." Then
objWksA.Cells.Hyperlinks.Add Anchor:=objWksA.Cells(ZeileA + 4, 2), Address:="", _
SubAddress:="'" & .Name & "'!" & .Cells(Zeile, 1).Address
objWksA.Cells(ZeileA + 4, 2).Value = " " & Chr(1) & " " & Mid(.Cells(Zeile, 1).Value, 1)
ZeileA = ZeileA + 1
End If
Next Zeile
End With
LG,
Tommi
Anzeige
AW: Wer lesen kann, ...
27.01.2010 10:29:00
TommiH
Hm,
nun habe ich manuell eine Lösung gefunden, die Frage ist, ob man die irgendwie in den Hyperlink mit einbauen kann.
Wenn ich VOR! dem Anspringen des Hyperlinks in der Datei wo der Hyperlink hinzeigt ganz ans Ende springe, dann verhält sich das ganze wie gewünscht.
Also wenn er 'von unten' kommend den Link anspringt klappt es - aber dazu muss ich immer vor dem Anklicken des HL in der Datei nach unten scrollen und dann einmal in eine Zelle klicken.
Die Frage ist nun ob man per Hyperlink 2 Stellen hintereinander anspringen kann, also erst z.B. in Zeile 10000 und dann zum gewünschten Ziel.
LG,
Tommi
Anzeige
AW: Wer lesen kann, ...
27.01.2010 10:54:25
Josef
Hallo Tommy,
dann nimm diesen Code.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  On Error Resume Next
  Application.Goto Sheets(Replace(Left(Target.SubAddress, InStr(1, Target.SubAddress, _
    "!") - 1), "'", "")).Range(Mid(Target.SubAddress, InStr(1, Target.SubAddress, "!") + 1)), _
    True
  
  On Error GoTo 0
End Sub

Gruß Sepp

Anzeige
AW: Wer lesen kann, ...
27.01.2010 11:03:59
TommiH
Hallo Sepp,
klasse, danke, damit geht es nun _fast_, ich kann damit immerhin in die Zielzeille springen, so dass diese die oberste sichtbare Zeile in Excel ist.
Eigentlich wollte ich es zwar so haben das die Zeile ÜBER dem Ansprungziel die oberste Zeile ist, aber auch so geht es schon erstmal...
LG,
Tommi
AW: Wer lesen kann, ...
27.01.2010 11:27:32
Josef
Hallo Tommy,
das ist kein Problem.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  On Error Resume Next
  Application.Goto Sheets(Replace(Left(Target.SubAddress, InStr(1, Target.SubAddress, _
    "!") - 1), "'", "")).Range(Mid(Target.SubAddress, InStr(1, Target.SubAddress, "!") + 1)).Offset(-1, 0), _
    True
  
  On Error GoTo 0
End Sub

Gruß Sepp

Anzeige
AW: Wer lesen kann, ...
27.01.2010 11:36:34
TommiH
Wau - perfekt!
Danke! - Genau so hatte ich es mir vorgestellt, schade allerdings das man das nicht direkt mit dem Hyperlink erreichen kann, ist halt ein Arbeitsschritt mehr das immer in die Datei zu packen.
Da muss ich doch mal schauen ob man das nicht auch per VBA da reinsetzen kann, so direkt nach dem anlegen des Arbeitsblattes.
Oh, eine Sache wäre aber doch noch ;) - kann man den Fokus (also die umrahmte Zelle) eigentlich auf das Ziel des Hyperlinks setzen? Jetzt ist es ja um die Zelle über dem HL. Wäre aber def. kein Problem wenn das nicht ginge - wie gesagt, so wie es jetzt ist kann es auf alle Fälle bleiben!
LG,
Tommi
Anzeige
AW: Wer lesen kann, ...
27.01.2010 11:50:10
Josef
Hallo Tommy,
auch das geht.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  On Error Resume Next
  Application.Goto Sheets(Replace(Left(Target.SubAddress, InStr(1, Target.SubAddress, _
    "!") - 1), "'", "")).Range(Mid(Target.SubAddress, InStr(1, Target.SubAddress, "!") + 1)), _
    True
  ActiveWindow.SmallScroll -1
  On Error GoTo 0
End Sub

Gruß Sepp

AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:28:31
Luschi
Hallo Tommi,
schreibe ins Klassenmodul der Tabelle folgenden Vba-Code:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveWindow.ScrollRow = ActiveCell.Row - 1
ActiveWindow.ScrollColumn = ActiveCell.Column - 1
End Sub
Gruß von Luschi
aus klein-Paris
AW: Hyperlink Ziel 'ausrichten'
26.01.2010 17:35:38
TommiH
Hallo Luschi,
hm, also ein Klassenmodul habe ich angelegt und dann den Code eingefügt - Erfolg - keiner.
Kann es sein, das das nur bei bestimmten Excel-Versionen geht? Oder muss man für sowas noch irgendwo etwas aktivieren?
LG,
Tommi
AW: Hyperlink Ziel 'ausrichten'
27.01.2010 11:37:05
Luschi
Hallo Tommi,
hier ein kleines Beispiel: https://www.herber.de/bbs/user/67540.xls
In Tabelle1 gibt es 2 Hyperlinks.
Gruß von Luschi
aus klein-Paris

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige