Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA prüfen ob Zelle im Bildschirm liegt

223 views
Skip to first unread message

Hans.Alborg

unread,
Aug 27, 2017, 1:46:23 AM8/27/17
to
Hallo,

<Excel 2007>

Meine Eisenbahnsimu scrollt zuviel!

Das ist eine große Tabelle, die z.B. von einem Zug quer befahren wird.
Also scrollt Excel mit dem Zug seitlich mit, bei jeder "Fahr-Etappe".

Leider auch, wenn diese Strecke über Tabellenspalten führt, die beide im
aktuellen Screen zu sehen sind. Das bringt Unruhe in die Darstellung.

Ich suche daher einee Abfrage "ist Zelle XY sichtbar?" (= das
Etappenziel) um dann das Scrollen zu verhindern.

Das Beispiel "Zug" zielt zwar auf eine Spaltenabfrage ab, aber wenn
möglich möchte ich in anderen Codeteilen auch nach sichtbaren Zeilen testen.

TIA,

Hans

Claus Busch

unread,
Aug 27, 2017, 5:47:04 AM8/27/17
to
Hallo Hans,

Am Sun, 27 Aug 2017 07:46:24 +0200 schrieb Hans.Alborg:

> Ich suche daher einee Abfrage "ist Zelle XY sichtbar?" (= das
> Etappenziel) um dann das Scrollen zu verhindern.

die lezte Spalte des sichtbaren Fensters bekommst du mit
LetzteSpalte = Chr(ActiveWindow.VisibleRange.Columns.Count + 63)

Ich habe hier nur 63 statt 65 genommen, da beim VisibleRange die letzte
Spalte ausgegeben wird, auch wenn sie nur zum Teil sichtbar ist.


Mit freundlichen Grüßen
Claus
--
Windows10
Office 2016

Claus Busch

unread,
Aug 27, 2017, 6:06:27 AM8/27/17
to
Hallo Hans,

Am Sun, 27 Aug 2017 11:47:01 +0200 schrieb Claus Busch:

> LetzteSpalte = Chr(ActiveWindow.VisibleRange.Columns.Count + 63)

Columns.Count allein ist untauglich.
Probiere es mit:
LetzteSpalte = ActiveWindow.ScrollColumn + ActiveWindow.VisibleRange.Columns.Count - 2

Hans.Alborg

unread,
Aug 27, 2017, 10:17:26 AM8/27/17
to
Hallo Claus,

Claus Busch schrieb:

> Claus Busch:
>
>> LetzteSpalte = Chr(ActiveWindow.VisibleRange.Columns.Count + 63)
>
> Columns.Count allein ist untauglich.

Garnicht! Für die Fahrt von rechts nach links ergibt das die erste
Spalte, das ist prima, und...

> LetzteSpalte = ActiveWindow.ScrollColumn + ActiveWindow.VisibleRange.Columns.Count - 2

damit ergibt sich, abhängig vom Zoom sogar, die rechte Grenze; wichtig
für die andere Fahrtrichtung.

Vielen Dank wieder für Deine Hilfe. Einbauen in meinen Code werde ich
das morgen. Mal sehen ob die Syntax auch mit ROW geht.

-Was war der Gedanke hinter

Chr(ActiveWindow.VisibleRange.Columns.Count + 63)

"Chr" ergibt doch ein Zeichen???

Hans

Claus Busch

unread,
Aug 27, 2017, 12:21:59 PM8/27/17
to
Hallo Hans,

Am Sun, 27 Aug 2017 16:17:26 +0200 schrieb Hans.Alborg:

> -Was war der Gedanke hinter
>
> Chr(ActiveWindow.VisibleRange.Columns.Count + 63)
>
> "Chr" ergibt doch ein Zeichen???

ich wollte dn Spaltenbuchstaben ausgeben. Aber da wäre schon nach 26
Spalten ein Fehler gekommen.

Hans.Alborg

unread,
Aug 28, 2017, 3:34:30 AM8/28/17
to
Hi Claus,

Claus Busch schrieb:

> ich wollte dn Spaltenbuchstaben ausgeben. Aber da wäre schon nach 26 Spalten ein Fehler gekommen.

Ah ja. Ich hatte bereits """ gesehen.

Der Code läuft mit Column jetzt in der Simu. Beim Ende muß ich noch was
machen, damit verhindert wird daß die Tabelle den Bildschirm teilw.
verläßt, also "das Weiße" sichtbar wird.

Sonst alles perfekt!

Hans

silvia...@gmail.com

unread,
Sep 6, 2017, 6:28:51 AM9/6/17
to
Finanzdienstleistungen für die Realisierung Ihrer Projekte
christell...@gmail.com
Hallo Herr und Herr
Ehrlichkeit und Aufrichtigkeit sind die beiden Dinge, die auf Websites fehlen. Ich bin Frau Christelle MORTEAU ein französischer Kreditgeber. Ich bin ein französischer Staatsangehöriger. Ich biete Darlehen an ernsthafte Menschen wahrscheinlich gut zurückzahlen mich auf einen Zinssatz von 3% pro Jahr. Meine Darlehensbedingungen sind sehr klar und einfach. Bitte kontaktieren Sie mich für weitere Informationen: christell...@gmail.com
0 new messages