Discussion:
mit VBA horizontal scrollen
(zu alt für eine Antwort)
Hans Alborg
2015-11-23 22:12:15 UTC
Permalink
Guten Abend,

<Excel 2007>

ich hab mich früher schon ausführlich mit Obigem befaßt, und die Sache
wieder fallen lassen.

Jetzt soll es aber ganz einfach gehen!
Naja, nicht scrollen sondern springen!

In Spalte A, die fixiert ist, habe ich die Hintergrundfarbe alle 10 Zeilen
abwechselnd farbig gestaltet.

Jede der 2 Farben löst beim Anklicken ein Scroll- Ereignis aus:

If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
ActiveWindow.ScrollColumn = 9

Ich möchte natürlich bei jedem Klick keinen Sprung zu Spalte 9, sondern
immer 9 Spalten weiter!
Dasselbe dann auch "negativ", also zurück nach Spalte 9 (Klick auf 2.Farbe).

Das wäre ein Klacks mit einer Zählschleife, aber gibt's da bereits einen
Befehl zum "Scrollen um 9 Stellen"?

TIA,

Hans
Martin Worm
2015-11-24 16:59:16 UTC
Permalink
On Mon, 23 Nov 2015 23:12:15 +0100, "Hans Alborg"
Post by Hans Alborg
Guten Abend,
<Excel 2007>
In Spalte A, die fixiert ist, habe ich die Hintergrundfarbe alle 10 Zeilen
abwechselnd farbig gestaltet.
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
ActiveWindow.ScrollColumn = 9
Ich möchte natürlich bei jedem Klick keinen Sprung zu Spalte 9, sondern
immer 9 Spalten weiter!
Dasselbe dann auch "negativ", also zurück nach Spalte 9 (Klick auf 2.Farbe).
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then

activewindow.ScrollColumn =activewindow.ScrollColumn +9 (oder -9)

Vielleicht sollte man abfangen, dass man nicht Spalten<0 oder >16384
erhält

mit freundlichen Grüssen
--
Martin Worm
Hans Alborg
2015-11-24 17:42:46 UTC
Permalink
Hey Leute, da waren wohl alle fast gleichzeitig mit dem Abendbrot fertig?

"Martin Worm" schrieb...
Post by Hans Alborg
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
activewindow.ScrollColumn =activewindow.ScrollColumn +9 (oder -9)
Vielleicht sollte man abfangen, dass man nicht Spalten<0 oder >16384
erhält
Hi Martin, >16384 wäre eher unwarscheinlich: 16384/9 müßte ich 1820x
klicken.
Keine Arbeit für einen Tag, was?
-----------------------------------------------------------------------------

"Claus Busch" schrieb...
Post by Hans Alborg
With ActiveWindow
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
.ScrollColumn = IIf(.ScrollColumn < 9, 9, .ScrollColumn + 9)
End If
End With
Nach Links dann analog.
Hallo Claus,
3 Leute, 3 Lösungen. Ist schon interessant daß es mit VBA nicht nur eine
Herangehensweise gibt. Nur schade daß Excel kein Softscroll kann, das wäre
zum gucken nicht so anstrengend. Für den _automatischen_ Ablauf meiner
Simulation verwende ich Routinen, die zum jeweils interessanten Fleck in der
großen Tabelle springen, mit dafür passendem Zoom und einer Userform, die
einen zum gezeigten Vorgang passenden Text anzeigt. Das funktioniert schon,
muß aber noch für alle Stops gemacht werden.

Die hier gefragte Form des Scrollens brauche ich, wenn ich die Simulation
per Hand weiterschalte, dann geht es (max. 700 Zeilen, Martin) in der
Tabelle immer hin und zurück.

Na dann noch einen schönen Abend allerseits, und Danke!

Hans

Claus Busch
2015-11-24 17:01:45 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
ActiveWindow.ScrollColumn = 9
Ich möchte natürlich bei jedem Klick keinen Sprung zu Spalte 9, sondern
immer 9 Spalten weiter!
Dasselbe dann auch "negativ", also zurück nach Spalte 9 (Klick auf 2.Farbe).
probiere es mal so nach Rechts:

With ActiveWindow
If ActiveCell.Interior.Color = RGB(250, 250, 100) Then
.ScrollColumn = IIf(.ScrollColumn < 9, 9, .ScrollColumn + 9)
End If
End With

Nach Links dann analog.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2015-11-24 17:18:25 UTC
Permalink
"Hans Ingrid Alborg" schrieb...
Then _ ActiveWindow.ScrollColumn = 9
Man muß vielleicht einfach mal ausschlafen, dann klappt das wieder!

If ActiveCell.Interior.Color = RGB(250, 250, 100) _
Then ActiveWindow.SmallScroll Toleft:=9

If ActiveCell.Interior.Color = RGB(200, 240, 100) _
Then ActiveWindow.SmallScroll ToRight:=9

Mal seh'n ob mich solche Springerei glücklich macht.
Kann ich ja wieder löschen :-)

Hans
Lesen Sie weiter auf narkive:
Loading...