Excel, ScrollBar / Bildlaufleiste

Hallo!

Ich habe in ein Excel (Excel 2002) Arbeitsblatt mit Hilfe der Steuerelement-Toolbox einen Scrollbalken/„Bildlaufleiste“ eingefügt - funktioniert auch soweit. Nun möchte ich aber die Min- und Max - Werte dynamisch aus der Tabelle holen. Unter „Eigenschaften“ von ScrollBar1 kann ich aber leider nur konstante Werte eingeben.
Irgendwo in einem Stück VBA-Code muss ich sicher irgendeine Zuweisung machen …
Wer weiss wo und was ?

Vielen Dank schon mal!
Gruß Kurt

Ich habe in ein Excel (Excel 2002) Arbeitsblatt mit Hilfe der
Steuerelement-Toolbox einen Scrollbalken/„Bildlaufleiste“
eingefügt - funktioniert auch soweit. Nun möchte ich aber die
Min- und Max - Werte dynamisch aus der Tabelle holen. Unter
„Eigenschaften“ von ScrollBar1 kann ich aber leider nur
konstante Werte eingeben.

Hi Kurt,
ungetestet, klicke mal im Editor doppelt auf den Blattnamen, Code einfügen.
Min und max wird in A1/A2 erwartet.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address „$A$1“ And Target.Address „$A$2“ Then Exit Sub
ScrollBar1.Min = Range(„A1“)
ScrollBar1.Max = Range(„A2“)
End Sub

Gruß
Reinhard


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address „$A$1“ And Target.Address
„$A$2“ Then Exit Sub
ScrollBar1.Min = Range(„A1“)
ScrollBar1.Max = Range(„A2“)
End Sub

Gruß
Reinhard

Hallo Reinhard,
vielen Dank für deinen Tipp! Mit dem (angepassten) Code in „Worksheet_Change“ hat sich aber nichts getan. Vielleicht liegt’s daran, dass die Zelle mit dem Max-Wert ihre Daten per Funktion (Anzahl2) aus einem anderen Blatt holt? Wird dann „Worksheet_Change“ nicht getriggert ? Jedenfalls blieb es bei den ursprünglichen, festen Min/Max-Werten.

Ich hab’s dann mal (ohne des „IF“) nach „Private Sub ScrollBar1_Scroll()“ verschoben und jetzt klappt es. Ein kleiner Seiteneffekt (mit dem ich aber auch leben kann) ist natürlich, dass die Min/Max-Werte jetzt erst aktualisiert werden, wenn der Scrollbar bewegt wird. Infolgedessen springt der „Griff“ beim ersten Bewegen einmalig zur Seite (weil nun neue Min/Max-Werte verwendet werden).

Gruß Kurt

Hallo Kurt,
Änderungen von Formelergebnissen lösen kein Change-Ereignis aus.
Mit dem Change-Ereignis mußt du deshalb diejenigen Zellen „überwachen“, wo manuell etwas geändert wird.
Wenn du da also in A1 stehen hast:
=Anzahl(Tabelle3!E4:E89)
so muß in das Modul von Tabelle3:
(ungetestet)

Private Sub Worksheet_Change(ByVal Target As Range)
If intersect(Target,range(„E4:E89“) is nothing then exit sub
worksheets(„Tabelle1“).ScrollBar1.Min = Range(„A1“)
worksheets(„Tabelle1“).ScrollBar1.Max = Range(„A2“)
End Sub

Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]