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

Letzte Spalte anzeigen

Letzte Spalte anzeigen
30.10.2006 22:21:39
Adi
Hallo XL-Profs,
hoffentlich ist noch jemand da draußen, der mir helfen kann.
Ich habe ein Excelblatt mit fixiertem Fenster!
In der letzten verwendeten Spalte (rechts) steht jeweils die Zeilensumme.
Durch Makros werden Veränderungen an der Tabelle vorgenommen, bei denen auch Spalten dazwischen kommen können.
Unabhängig von der Anzahl der hinzugekommenen Spalten bzw. der Ausgangsansicht bei Anstarten des Makros soll nach Ausführung des Makros nun die letzte Spalte (Summe) gerade noch am rechten Rand sichtbar sein (also gerade so weit nach rechts gescrollt werden, dass die Summe sichtbar ist, aber auch nicht mehr).
Das Ganze hängt ja auch noch vom Zoomfaktor ab.
Mit ActiveWindow.ScrollColumn = ? komme ich nicht weiter.
Weiß jemand Rat? Oder 'ne Idee?
Bin für JEDEN Hinweis dankbar.
Danke im Voraus
Adi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Spalte anzeigen
30.10.2006 22:50:48
Daniel
Hallo
ScrollColumn ist ja immer am linken Rand orientiert, nicht am rechten.
Die Frage ist, vieviele Spalten sollen den sichtbar sein, bzw welches ist die kleinste Spalte, die am linken Rand erscheinen muss?
Diese solltest du erstmal mit ACTIVEWINDOW.SCROLLCOLUMN einstellen.
Dann solltest du die Zoomstufe so einstellen, daß die Summe am rechten Rand erscheint.
(falls du den Befehl für die Zoomstufe nicht weist - Makrorecorder)
Das kannst du beispielsweise in einer iterartiven Schleife (z.B. von 150% in 5%-Schritten) die Zoomstufe verkleinern, bis die letzte Spalte sichtbar ist.
Den Sichtbaren Bereich ermittelst du mit ACTIVEWINDOW.VISIBLERANGE
Diese funktion gibt dir ein Range-Objekt zurück, daß du ganz normal auswerten kannst.
Also mit (AcitveWindow.visiblerange.column + acitivewindow.visblerange.columns.count-1)
erhältst du die Spalten-Nr. der letzten sichtbaren Zelle, die kannst du ja mit deiner letzten verwendeten Spalte vergleichen.
Gruß, Daniel
Anzeige
AW: Letzte Spalte anzeigen
31.10.2006 00:09:47
Adi
Hallo Daniel,
vielen Dank für die prompte Hilfe.
Ich bin noch am Umsetzen, aber ActiveWindow.VisibleRange war wohl der entscheidende Hinweis.
10^3 Thx
Adi
OT geteiltes fixirtes Fenster
31.10.2006 00:28:12
Reinhard
Hallo Daniel,
ich las die Anfrage auch und stolperte in der Hilfe über:
Wenn das Fenster geteilt ist, bezieht sich die ScrollColumn-Eigenschaft des Window-Objekts auf den linken oberen Ausschnitt. Sind die Ausschnitte fixiert, schließt die ScrollColumn-Eigenschaft des Window-Objekts die fixierten Bereiche aus.
Okay, das mit dem fixierten verstehe ich. Ich schließe Zeilen und/oder Spalten vom Scrollen aus. Aber who the GV is Alice bzw. was meinen die mit geteiltem Fenster? Meint MS wenn ich 4 Fenster nebeneinanderhabe das linke obere Fenster und da den nicht fixierten Teil?
Mir ist grad das "geteilt" unklar.
Danke ^ Gruß
Reinhard
Anzeige
AW: OT geteiltes fixirtes Fenster
31.10.2006 00:57:55
Daniel
Hallo
ein geteiltes Fenster ist kein neues Fenster sondern das Fenster wird in 2 Hälften bzw 4 Viertel geteilt.
Der Unterschied ist, beim Fixieren kannst du nur noch ein einem Teil scrollen(rechs unten), beim Teilen kann ein allen Teilen mehr oder weniger unabhängig voneinander über das ganze Blatt geschrollt werden.
Teilen ist dann sinnvoll, wenn man bspw. 2 Tabellen auf einem Blatt hat und Daten von der einen in die Andere kopiern will, oder in einem Blattabschnitt Informationen vorhanden sind, die man beim Bearbeiten an einer anderen Stelle aber sehen will.
Meist arbeitet man aber mit Tabellen, und da ist es sinnvoll den Kopf ständig sichtbar zu haben, deswegen wird meist fixiert und nicht geteilt. (beim Teilen kann es z.b. Vorkommen, daß Spalten 2x angezeigt werden)
Gruß, Daniel
Anzeige
AW: OT geteiltes fixirtes Fenster
31.10.2006 11:55:47
Reinhard
Hallo Daniel,
danke dir für die Ausführlichkeit.
Mir war schlichtweg im Laufe der Jahre entfallen dass es im Menu "Fenster" den Punkt "Teilen" gibt da ich vielleicht 2mal im Jahr den Punkt "Fixieren " nutze, an sonsten nie das Menu "Fenster".
Zwischen Mappen wechsle ich über die Taskleiste.
Gruß
Reinhard
Lösung: Letzte Spalte anzeigen
01.11.2006 10:05:55
Adi
Hallo Forum,
nachfolgend der Vollständigkeit halber meine Umsetzung - wie sie tatschlich funktioniert. (Dann kann auch ich sie später einfach auf herber.de wiederfinden ;-))
-- schnipp ----

Sub Teste_letzte_Spalte_ganz_rechts()
maxSpalten = Sheets(ActiveSheet.Name).UsedRange.Columns.Count
'Startzustand letzte Spalte ganz links
ActiveWindow.ScrollColumn = maxSpalten
'Da Spalten unterschiedliche Breite besitzen, kann Anzahl der sichtbaren Spalten nicht vorhergesagt werden.
'Loop, um Letzte Spalte so weit nach rechts zu verschieben, bis gerade noch sichtbar
'Activewindow.VisibleRange.Columns.Count gibt im GETEILTEN Fenster
'die Anzahl der im freien Bereich rechts sichtbaren Spalten an:
sichtbare_freie_Spalten = ActiveWindow.VisibleRange.Columns.Count
Do While ActiveWindow.ScrollColumn + sichtbare_freie_Spalten >= maxSpalten
'solange die erste freie Spalte links plus die Anzahl der sichtbaren,freien Spalten
'größer ist als die letzte Spalte des Datenbereichs:
ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn - 1 'verschiebe den freien Bereich
If ActiveWindow.ScrollColumn = ScrollColumn_alt Then Exit Do     'Möglichkeit abfangen, dass eine Verschiebung nicht möglich ist, weil bereits am linken Anschlag bei Tabellen mit wenig Spalten
ScrollColumn_alt = ActiveWindow.ScrollColumn
Loop
End Sub

-- schnapp ----
Nochmals vielen Dank an Daniel - ohnen Deinen Tipp (VisibleRange) hätte ich keine Chance gehabt.
Gruß
Adi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige