Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Scrollen das Fensters

Scrollen das Fensters
Wolfgang
Hallo,
bei bestimmten Aktionen verschiedener Makros, die ich in einem Kontext aufrufe, wird der Bildschirmausschnitt der Excel-Tabelle geändert, was unerwünscht ist. Da die Makros sehr umfangreich sind und die gegenseitigen Aufrufe sehr verästelt, sowie die Sache nicht eindeutig reproduzierbar, konnte ich dem Problem mit Ausschalten des Screenupdatings nicht beikommen.
Nun hätte ich gerne nach Ausführung des Codes in der Darstellung zur selben Bildschirmposition zurückgewechselt, die dargestellt war, als die Makros gestartet wurden. Weiß jemand wie das geht?
Danke
Wolfgang

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Scrollen das Fensters
Hajo_Zi
Hallo Wolfgang
in VBA ist zu 99% eine Select, Activate nicht notwendig. Verzichte auf select usw. und Du hast kein Problem.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro SP 3


AW: Scrollen das Fensters
Wolfgang
Hallo Hajo,
Danke für die Antwort. Leider hilft mir der Tipp nicht weiter, da es sich wie gesagt um eine sehr große Applikation handelt, die einen Umfang von bereits 6 MB hat, mit über 20 UserForms etc. Ich kann jetzt nicht hergehen und den gesamten Code umbauen und qualifizieren, wo und wie selects zu ändern sind - außerdem SOLL eben in manchen Prozeduren gescrollt werden - nur nicht in diesem Fall. Daher: Änderungen wären viel zu umfangreich und auch aufgrund anderer Aufrufkontexte evtl. unerwünscht.
Daher nochmals meine Frage: gibt es die Möglichkeit, sich die aktuelle Bildschirmposition zu merken und zu ihr zurückzukehren?
Danke
Wolfgang
Anzeige
AW: Scrollen das Fensters
Andreas
Hallo Wolfgang,
du kannst du aktuelle Position vor der Ausführung der VBA-Aktion mit "ActiveCell.Address" auslesen, in einen Variablen-Container schreiben und dann zurückkehren, indem du diesen Container wieder benutzt, also einfach als Zwischenspeicher nutzen und schon funktioniert es. Kannst das Ganze ja mal antesten mit nem Button und MsgBox ActiveCell.Address :-)
cheerio
Andreas
AW: Scrollen das Fensters
03.04.2004 09:39:07
Oberschlumpf
Hi Wolfgang
Deklariere doch im allgemeinen Modul öffentliche Variablen, mit dessen Hilfe Du Dir VOR Ausführung des "fehlerhaften" Makros
Tabelle
Blattname
Spaltenposition
merkst.
Z Bsp so:
Public TabelleName as String, Blattname As String, Zelle As String
TabelleName = ActiveWorkbook.Name
Blattname = ActiveSheet.Name
Zelle = ActiveCell.Address
...und hier dann das eigentliche Makro
Und wenn fertig, dann...
Workbooks(TabelleName).Activate
Sheets(Blattname).Range(Zelle).Select
Du musst die Syntax insgesamt vielleicht anpassen, da dies hier nur eine Überlegung von mir ist, ohne dass ich das getestet habe.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Scrollen das Fensters
Wolfgang
Hallo Oberschlumpf und Andreas!
Danke für die Antworten! Mir ist die Möglichkeit, eine Zelle oder die Adresse zu merken bekannt. Das Problem ist, dass auch am Ende der Ausführung die RICHTIGE Zelle markiert ist, aber aufgrund möglicher selects während verschiedener Makros - die ich nichtmal alle selbst geschrieben habe - der Bildschirmausschnitt geändert wird. Ein Select-Statement am Schluß bringt nichts.
Es müsste ein Scrollen zum richtigen Fensterausschnitt sein. Kann man sich denn nicht Koordinaten etc. irgendwo merken udn dorthin zurückkehren?
Danke
Wolfgang
AW: Scrollen das Fensters
Andreas
Hi Wolfgang,
bin gleich weg vom PC, deswegen nur noch kurz eine Idee in den Raum geworfen: Hast du schon versucht das Ganze so zu gestalten, dass du vor und nach der Ausführung des VBA-Aktionsteils mit Screenupdating arbeitest? Also etwa in der Form:
Application.ScreenUpdating = False
(... hier dann deine Aktion)
Application.ScreenUpdating = True
Ggf. dann noch kombinieren mit einem Select auf die Ausgangszelle, soweit diese noch nicht aktiviert ist, also sprich den Quelltext vom "Oberschlumpf" mit einbauen, Arbeitsblatt, und Zellenbezeichnung merken. Das dürfte eigentlich funktionieren ... aber wie gesagt, keine Zeit mehr und deswegen auch nicht getestet ....
cheerio
Andreas
Anzeige
AW: Scrollen das Fensters
03.04.2004 10:23:23
Oberschlumpf
Hi
Dann selektiere am Schluss Deines Makros doch einfach DIE Zelle, die oben links steht, wenn der von Dir gewünschte Bildschirmausschnitt vollständig angezeigt wird.
Bsp.:
Wenn gerad die Zelle BF33 augewählt ist, kann die Zelle A1 nicht angezeigt werden.
Wenn Du dann
Range("A1").Select
verwendest, wird eben A1 markiert und der zugehörige Bildschirmausschnitt wird angezeigt.
-------------
Und wenn das auch nix nützt, dann versuch es so:
Workbooks(TabelleName).Activate
Sheets(Blattname).Select
ActiveWindow.SmallScroll Down:=7 (oder Up:=7)
ActiveWindow.SmallScroll ToRight:=6 (oder Left:=6)
Dieses Bsp bewirkt, dass die Tabelle 7 Zeilen nach unten und 6 Spalten nach rechts scrollt.
Hier musst Du allerdings die notwendigen Zeilen und Spalten durch Ausprobieren ermitteln, da ich nicht weiß, wie man hier Werte auslesen kann.
Konnte ich jetzt helfen? :-)
Ciao
Thorsten
Anzeige
AW: Scrollen das Fensters
03.04.2004 11:43:43
Nepumuk
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige