1.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo, liebe Experten,
folgendes Problem beschäftigt mich:
Ich habe mir eine exel Tabelle erstellt mit einer - ich habe sie " Hauptmaske " genannt -.
In dieser optisch ansprechend gestalteten Hauptmaske sind Schaltflächen integriert, die alle mit einem Hyperlink belegt sind. Über diese Schaltflächen gelange ich zu den entsprechenden Tabellenblättern.
Jetzt das Problem:
Das über den Hyperlink aufgerufene Tabellenblatt startet immer bei Zelle A1.
Wenn die Tabelle aber schon bis Zelle A2000 beschrieben ist, ist das etwas blöd!
Gut, ich kann jetzt beim erstellen des Hyperlink`s den Zellbezug A2000 eingeben - dann startet das Tabellenblatt auch bei A2000.
Wenn ich die entsprechende Tabelle aber weiter bearbeite, bin ich mit A2000 bald wieder nicht aktuell und ich muss wieder nachbessern.
Es wäre super, wenn Ihr eine Lösung hättet, dass das Arbeitsblatt immer an der zuletzt bearbeiteten Zelle geöffnet wird, so wie bei jeder anderen normalen exel Tabelle ohne Hyperlinks.
Vielen Dank für Eure Bemühungen!
Gruß Kurt`l

3 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Kurt,

geht meinem Erachten nach nur über eine Makrolösung. Nachfolgendes Makro wechselt in das Tabellenblatt "Tabelle1" und scrollt in die letzte beschriebene Zelle in Spalte A.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Blattanwahl_1()
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With

With Sheets("Tabelle1")
.Activate
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1).Select
ActiveWindow.ScrollRow = Selection.Row
ActiveWindow.ScrollColumn = Selection.Column
End With

ERRORHANDLER:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Für jede Anwahl eines Tabellenblatts wird jeweils obiges Makro benötigt, also muss kopiert und vom Namen her angepasst werden.

Zum besseren Verständnis habe ich Dir mal eine Beispieldatei mit obigen Makro hochgeladen. Du kannst Dir die Datei unter http://excelbeispiele.de/Beispiele:Supportnet/Beispiel_Supportnet_Klemi.xls herunterladen.

Nochmal zu obigen Makro: Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,
Danke für Deine Antwort.
Bin jetzt eine Woche abwesend und muss jetzt vom PC weg sonst macht mir mein Feldwebel die Hölle heiß! Der eine oder andere wird das Problem kennen.
Sobald ich wieder online bin probiere ich das Makro aus und melde mich noch einmal.
Gruß Klemi
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

ich würde keine Hyperlinks verwenden sondern die Schaltflächen mit einem Makro verknüpfen. Ich nehme an, auf deinen Schaltflächen steht der Name des Tabellenblattes, in welches gesprungen wird? Was für "Schaltflächen" verwendest du - Zeichnungselemente? In diesem Fall müsstest du das folgende Makro in eine allgemeines Modul kopieren und es den Schaltflächen zuweisen:
Sub Springen()
With Worksheets(ActiveSheet.Shapes(ActiveSheet.Application.Caller).DrawingObject.Caption)
Application.Goto reference:=.Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count), 1), scroll:=True
End With
End Sub



@Oliver,

ich würde generell erst prüfen, welche Berechnungsart eingestellt ist, ehe ich sie per Code verändere. Hat sie jemand auf Manuell stehen, würdest du sie mit deinem Code am Ende wieder auf automatisch setzen ohne dass der Nutzer es möchte.


Bis später,
Karin
...