Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen

Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
18.05.2024 19:37:15
Kulo
Hallo liebe Excellianer,

ich hab mir da wieder was ausgedacht, bei dem ich arg am Verzweifeln bin:

In einer Exceldatei habe ich mehrere Tabellenblätter für fortlaufende Jahre mit identischem Aufbau. Auf jedem Tabellenblatt befinden sich zwei Buttons, um ein Jahr nach vorn oder ein Jahr zurückzublättern. Wenn ich in einer Tabelle einen Wert ändere und prüfen möchte, wie er im nächsten oder vorigen Jahr aussieht, hätte ich gern, dass, wenn der entsprechende Button gedrückt wird, die andere Tabelle angezeigt wird, dort dieselben Zeilen zu sehen sind und die gleiche Zelle aktiviert ist, wie im ursprünglichen Tabellenblatt.

Mein Stand bis jetzt:

Bei Worksheet.Activate wird unterschieden, ob ich über die Buttons an die Tabelle komme oder über die Reiter am unteren Bildschirmrand.

Ich kann die Adresse der alten Zelle in die aufgerufene Tabelle übernehmen. Die Zelle wird selektiert.

Die oberste Zelle im alten Tabellenblatt wird auch im neuen Tabellenblatt als obere Zeile angezeigt. ABER: nicht immer! Manchmal scrollt die Tabelle zu einer anderen Zeile. Ich kann mir nicht erklären, warum nur manchmal, woher die Zeilennummer dann kommt. Ich kann mir auch nicht vorstellen, dass Excel langsamer rechnet, als ich klicken kann.

Im Anhang habe ich eine Beispieldatei erstellt. Der Code ist so ähnlich wie in meiner Originaldatei. Das Problem ist aber dasselbe. Die obere sichtbare Zeile stimmt nicht immer.

Ich würde mich sehr freuen, wenn sich jemand von euch mal da durchwühlen kann.

Danke schonmal und
Viele Grüße

Kulo

https://www.herber.de/bbs/user/169562.xlsm
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
18.05.2024 21:27:55
ralf_b
nutze auch das deactivate-Event Makro und schreibe darin in globale Variablen deine Informationen ,die du benötigst, um in nächsten Blatt im Activate Makro die Werte passend zu setzen. Das Deactivate wird vor dem Activate durchlaufen.
Nutze sh als Objektreferenz des betreffenden Blattes, um auf dessen Objekte zuzugreifen.
Anzeige
AW: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
18.05.2024 22:27:59
Piet
Hallo

im Prinzip hast du die Lösung schon in deinem Code drinstehen, er muss nur erweitert werden, ab hier:
Es gibt zwei Möglichkeiten, aber du musst dich selbst für eine von beiden entscheiden!
Entweder Range(Zelle).Select + MyRow - ODER - Call Blatt laden. Beide zusammen geht nicht!
Worksheets(CStr(Jahr)).Visible = False
ActiveSheet.Range(Zelle).Select
ActiveWindow.ScrollRow = MyRow
'ODER
Call BlattLaden

mfg Piet
Anzeige
AW: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
19.05.2024 05:03:54
Kulo
Hallo Onur,

das ist perfekt! Vielen Dank.
Da hab ich jede Menge zu tun, um auch nur halbwegs nachvollziehen zu können, was der Code macht.
Ich ziehe wiedermal den Hut!

Ich habe die Anzeige noch mit Application.ScreenUpdating etwas gebändigt. - ein klitzekleiner Beitrag von mir zur Lösung meines Problems. ;-)

Darf ich kurz noch fragen, was der Unterschied ist?
ActiveWindow.VisibleRange.Cells(1).Row
ActiveWindow.ActivePane.VisibleRange.Cells(1).Row

Wieso Public Ja, Ri, Ja1 as Boolean, im Code nehmen die doch andere Werte an als 0 und 1?

Für was ist ActiveWindow.ActivePane.Index? Das beschreibt das Fenster - oder? Ist das wichtig, wenn man mehrere Exceldateien offen hat oder weiß Excel, dass es immer nur ein Fenster aus dieser Datei nehmen kann, von der aus das Makro gestartet wurde? Im Code erzeugt das ja nur eine Anzeige im Direktbereich, wird aber sonst nicht ausgewertet - oder?

Du hast ja einen Timer eingebaut. Was macht der? Ist er dafür zuständig, dass sich das "alte Jahr" erst dann schließt, wenn das Neue fertig geladen ist?
Warum behält Excel in meiner Variante die Adresse der aktivierten Zelle, nicht aber die Nummer der oberen Zeile?

Es wäre schön, wenn du nochmal darauf eingehen könntest.
Aber wie auch immer, Deine Lösung ist genial.

Vielen Dank nochmal und einen schönen Pfingstsonntag.

Viele Grüße
Kulo
Anzeige
Gerne !
19.05.2024 13:37:04
Onur
Ein Paar Fragen beantworte ich, bei anderen musst du mal selber recherchieren und testen (so lernst du am besten):
Wenn da steht
Dim x,y,z,a as Integer

heisst das das selbe wie:
Dim x as Variant, y as Variant,z as Variant, a as Integer

das " as Integer" gilt immer nur für die Variable, hinter der es steht.
Wenn du 2 Variablen hast, die Integer werden sollen, musst du Beide einzeln dimensionieren.
Dim a , b As Integer
geht nicht, das wäre das Selbe wie
Dim a as Variant, b as Integer.
Das "as XY" muss unmittelbar nach dem Variablennamen kommen, wenn nicht vorhanden, wird die Variable automatisch "Variant".
Mache ich meistens OHNE ein "as Irgendwas", Grund: "Faulheit". Nur bei "Aktiv" war es wichtig, dass der Anfangswert auf "False" steht, deswegen mit "As Boolean".
Eines der Probleme bei dir: das geteilte Fenster. Woher soll VBA wissen, welches der 4 Fensterteile (Panes) du meinst ???
Dann: das Aktivieren eines Blattes dauert ein Bisschen und der Code stolpert über die eigenen Füße, daher die Bremse als Warteschleife mit dem Timer (0,2 sec).
Dann: Du kannst schneller Klicken, als der Code abgearbeitet werden kann, daher die Notbremse mit "Aktiv".
Anzeige
AW: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
19.05.2024 13:39:30
Onur
Alles, was mit "Debug.Print" beginnt, bitte löschen. Ist nur "Bauschutt".
AW: Zu Tabellenblatt springen, Zeile und Spalteninfo mitnehmen
19.05.2024 14:05:56
Kulo
Hallo Onur,

vielen Dank für deine Erklärung.

Ich habe heute früh schon den Code in meine Datei eingepflegt. Im Original war da noch etwas mehr und es hat ein bissl gedauert.
Aber jetzt läuft alles so, wie ich es wollte.

Hab wieder jede Menge dazu gelernt.

Danke und
viele Grüße

Kulo

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige