Hyperlink mit fixierten Infozeilen

Hallo,

wenn ich unten stehendes Makro anwende und per Hyperlink in Zeile 1001 springe passiert folgendes: Zeile 992:995 werden fixiert und die nächste Zeile ist 1001.

Ich möchte aber folgendes erreichen: Zeile 1001:1004 fixiert dann fortlaufend. Wobei es auch passieren kann, dass die Hyperlinkadresse auch 2-, 3-, 4- oder 5001 oder sogar noch höher lauten kann.

Wo ist der Fehler?

Viele Grüße

meilott

Sub MakroHyperlinkSprungImmerObenLinks()
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
With Target
Application.Goto Reference:=Worksheets(Left(.SubAddress, InStr(.SubAddress, „!“) - 1)). _
Range(Mid(.SubAddress, InStr(.SubAddress, „!“) + 1)), Scroll:=True
End With
End Sub

Sub Makro2()

’ Makro2 Makro
'Sub ZeileFixieren()
ActiveWindow.FreezePanes = False
Cells(ActiveCell.Row, ActiveCell.Column).Select
With ActiveWindow
.SplitColumn = 0
.SplitRow = 4
End With
ActiveWindow.FreezePanes = True

End Sub
End Sub

Hallo Meilott,

wenn ich unten stehendes Makro anwende und per Hyperlink in
Zeile 1001 springe passiert folgendes: Zeile 992:995 werden
fixiert und die nächste Zeile ist 1001.

das glaube ich nicht. Bei

Sub MakroHyperlinkSprungImmerObenLinks()
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

wird sich der Debugger melden. *annehm*

Und, unterhalb des Eingabefensters wird der pre-Tag erläutert.

Gruß
Reinhard

Hallo Reinhard,

vielen Dank das Du Dich mit diesem Thema beschäftigst.

Es ist aber so wie ich es beschrieben habe.

Ich habe auf Grund deiner Meldung einen Hyperlink mit Zieladresse AAA10001 angelegt.

als Ergebnis wurde angezeit: Zeile 992:995 und als 5. Zeile 10001 beginnend mit der Spallte AAA.

Keine Fehlermeldung!

Selbstverständlich kannst Du die Datei von mir bekommen, teile mir nur mit wohin ich sie senden soll.

Grüezi eilott

wenn ich unten stehendes Makro anwende und per Hyperlink in
Zeile 1001 springe passiert folgendes: Zeile 992:995 werden
fixiert und die nächste Zeile ist 1001.

Auch mir ist nicht wirklich klar, wie Du das Makro ‚anwendest‘…, aber folgendes müsste IMO eigentlich ausreichend sein:

 With Target
 Application.Goto ActiveSheet.Range(Split(.SubAddress, "!")(1)), Scroll:=True
 End With
 ActiveWindow.FreezePanes = False
 With ActiveWindow
 .SplitColumn = 0
 .SplitRow = 4
 End With
 ActiveWindow.FreezePanes = True
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thamas Ramel,

auch Dir sag ich schhon mal Danke.

Zu Deiner Frage wie ich das Makro anwende folgendes. Das Makro ist im Tabellenblatt1 hinterlegt. Der Hyperlinksprung erfolgt ins Tabellenbatt2.

Ich habe Deine veränderte Formel eingesetzt - keine Veränderung.

Selbstverständlich könntest auch Du die Dateizum Testen haben, aber wohin kann ich sie senden.

Viele Grüße

meilott

Grüezi meilott

Zu Deiner Frage wie ich das Makro anwende folgendes. Das Makro
ist im Tabellenblatt1 hinterlegt. Der Hyperlinksprung erfolgt
ins Tabellenbatt2.

Ich habe Deine veränderte Formel eingesetzt - keine
Veränderung.

Sorry, aber so wird das nichts werden fürchte ich - die Anordnung des Codes die Du hier genannt hast kann/wird so niemals funktionieren können.

Selbstverständlich könntest auch Du die Dateizum Testen
haben, aber wohin kann ich sie senden.

Lade sie auf einen WebSpace hoch und nenne hier dann den Link.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas Ramel,

unter

http://www.file-upload.net/download-2832489/Sprung-T…

kannst Du die Datei abrufen. Vieleicht hast Du ja die Lösung.

Viele Grüße

meilott

Grüezi meilott

http://www.file-upload.net/download-2832489/Sprung-T…

kannst Du die Datei abrufen. Vieleicht hast Du ja die Lösung.

Du musst natürlich auch die Fenster-Teilung aufheben, wenn Du diese setzt, sonst kann das nichts werden… :wink:

Lösche deinen kompletten Code und verwende die folgenden Zeilen in Tabellenblatt 1:

Private Sub Worksheet\_FollowHyperlink(ByVal Target As Hyperlink)
 With ActiveWindow
 .FreezePanes = False
 .SplitColumn = 0
 .SplitRow = 0
 End With
 With Target
 Application.Goto ActiveSheet.Range(Split(.SubAddress, "!")(1)), Scroll:=True
 End With
 With ActiveWindow
 .SplitColumn = 0
 .SplitRow = 4
 .FreezePanes = True
 End With
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas Ramel,

für deine prompte Hilfe recht herzlichen Dank.

Das Makro läuft so wie ich es mir vorgestellt habe.

Jedoch gibt es für mich nun ein weiteres Problem. Wird dieses Makro ein zweites mal in einem anderen Blatt der Arbeitsmappe kopiert, bekommt man beim Ausführen die Fehlermeldung „Laufzeitfehler 9 - Index liegt außerhalb des gültigen Bereichs“. Warum?

Vielleicht kannst Du auch hier behilflich sein.

Viele Grüße

meilott

Grüezi meilott

Das Makro läuft so wie ich es mir vorgestellt habe.

Na, das ist ja schon mal was.

Jedoch gibt es für mich nun ein weiteres Problem. Wird dieses
Makro ein zweites mal in einem anderen Blatt der Arbeitsmappe
kopiert, bekommt man beim Ausführen die Fehlermeldung
„Laufzeitfehler 9 - Index liegt außerhalb des gültigen
Bereichs“. Warum?

Gegenfrage, da deine Angaben zu unspezifisch ausfallen:

Wo genau - in welcher Zeile wird diese Meldung denn ausgworfen?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

entschuldigung, aber Heute scheint nicht mein Tag zu sein.

In folgender Formel wird der Fehler ausgelöst.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
With Target
Application.Goto Reference:=Worksheets(Left(.SubAddress, InStr(.SubAddress, „!“) - 1)). _
Range(Mid(.SubAddress, InStr(.SubAddress, „!“) + 1)), Scroll:=True
End With

End Sub

Wenn der Debugger geöffnet wird ist die Zeile markiert.

Application.Goto Reference:=Worksheets(Left(.SubAddress, InStr(.SubAddress, „!“) - 1)). _
Range(Mid(.SubAddress, InStr(.SubAddress, „!“) + 1)), Scroll:=True

Dieses Makro läuft im anderen Blatt zzgl. der Fixierungszeilen einwandfrei.

Viele Grüße

meilott

Grüezi meilott

Wenn der Debugger geöffnet wird ist die Zeile markiert.

Application.Goto Reference:=Worksheets(Left(.SubAddress,
InStr(.SubAddress, „!“) - 1)). _
Range(Mid(.SubAddress, InStr(.SubAddress, „!“) + 1)),
Scroll:=True

Hmmm, dann gibt es das Tabellenblatt, das da über den Hyperlink angesprungen werden soll, nicht.

Dieses Makro läuft im anderen Blatt zzgl. der Fixierungszeilen
einwandfrei.

Was genau willst Du denn mit diesem reduzierten Code bezwecken?
Über den Hyperlink bist Du ja schon im richtigen Blatt…?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas Ramel,

ich habe in 10 Jahren einiges an für mich interessante bzw. wichtige Unterlagen/Belege zusammengetrage und dieses in Excel(97), und einige Hundert Tabellenblätter, erfaßt. Im laufe der Zeit ist die Sache doch sehr Umfangreich, 12 MB groß, geworden. Das ganze in Excel (2007) ist jedoch nur ca. 4 MB groß und beinhaltet jetzt nur noch 8 Tabellenblätter. Es war jedoch einiges an Umstrukturirung erforderlich. Hatte in den 90er mal angefangen, das ganze mit RBase zu machen, aber nach einen Crash und der damit verbundenen Systemumstellung gefiel mir Excel besser.

Soviel zum Gebrauch.

Beide Makros funktionieren, wenn sie alleine im Arbeitsbatt sind. Irgendwie beissen oder stören sie sich.

Im Tabellenblatt 1 habe ich Sprungadressen, ohne Fixierung, nach Jahrgänge in Tabellenblatt 2. In dem Tabellenblatt 2 sind die Sprungadressen mit Fixierung für das Tabellenblatt 3 nach Themen und/oder Ablageinformationen. Die anderen Blätter enthalten Suchfuntion bzw. deren Darstellung.

Nochmals vielen Dank für deine Mühe und Verständnis.

Viele Grüße

meilott

Grüezi meilott

[Danke für die Hintergrund-Infos]

Beide Makros funktionieren, wenn sie alleine im Arbeitsbatt
sind. Irgendwie beissen oder stören sie sich.

Hmmm, das kann ich nach wie vor nicht so richtig nachvollziehen.

Wozu dient denn der zweite Code genu?
Was soll/tut er bezwecken?

Im Tabellenblatt 1 habe ich Sprungadressen, ohne Fixierung,
nach Jahrgänge in Tabellenblatt 2.

Das wäre dann welcher der beiden Codes?

In dem Tabellenblatt 2 sind
die Sprungadressen mit Fixierung für das Tabellenblatt 3 nach
Themen und/oder Ablageinformationen.

Ich nehme an, dass dies dann eben der erste Code ist, den ich dir umgeschrieben habe?

Nochmals vielen Dank für deine Mühe und Verständnis.

…im Moment ist die Mühe noch etwas grösser als das Verständnis… :wink:

Welchen Code hast Du in welchem Tabellenblatt drin?
Kannst Du hier bitte wieder eine kleine Demo-Mappe erstellen und auf einem WebSpace hochladen?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas Ramel,

es scheint wirklich nicht mein Tag zu sein.

Ich habe eben zum xtenmal die Testdatei aufgebaut und alles funktioniert. Keine Ahnung warum? Werde mir Morgen oer Übermorgen das Ganze noch mal in Ruhe anschauen.

Falls der Fehler nochmal auftaucht bzw wenn ich mit der Umstellung fertig bin, werde ich mich melden.

Noch einen schönen Abend

Viele Grüße

meilot

Grüezi meilott

es scheint wirklich nicht mein Tag zu sein.

Ja, solches soll/kann vorkommen, das ist nichts Aussergewöhnliches… :wink:

Ich habe eben zum xtenmal die Testdatei aufgebaut und alles
funktioniert. Keine Ahnung warum? Werde mir Morgen oer
Übermorgen das Ganze noch mal in Ruhe anschauen.

Möglicherweise/vermutlich ist deine Original-Mappe korrupt geworden, was beim Entwickeln immer wieer vorkommt. Dann hilft meist ein Neu-Aufbau der Mappe.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -