mein Lösungsversuch
06.07.2008 10:56:00
Werner
Hallo noffi, liebe Forumsmitglieder,
nach einigem Nachdenken bin ich auf folgende Lösung gekommen (Voraussetzung ist eine bestehende
Userform mit 30 Textfeldern für Vokabeln). Ich lese mit einem Scrollbar Vokabeln aus einer Vokabeltabelle wie folgt ein:
Public Sub VokScrollen()
Dim ws As Worksheet
Dim i As Integer
sclVok.Min = 0
sclVok.Max = 950
Set ws = ActiveSheet
Worksheets("Vok").Activate
For i = 1 To 30 '30 Vokabelfelder
frmUserform1.Controls("txtWrt" & CStr(i)) = Cells(i + 1 + sclVok.Value, 2).Value
Next i
ws.Activate
Set ws = Nothing
End Sub
Erklärungen: Die Vokabel-Textfelder sind als "txtWrt1" bis "txtWrt30" benannt. "sclVok" ist der Name
der ScrollBox (diese kann über den Vokabelfeldern platziert werden. "sclVok.Max" muss in diesem Beispiel um 30 kleiner als die Gesamtzahl der Vokabeln sein. Ist die Vokabelgesamtzahl variabel, kann "sclVok.Max" auch durch eine Variable ("sclVok.Max = Vokabelgesamtzahl") festgelegt werden.
Die Vokabeln stehen in Spalte A der Vokabeltabelle ("Vok"). Deren Gesamtzahl kann man auch mit einer der bekannten Funktionen ermitteln, mit denen man die letzte Zeile einer Tabelle feststellt.
"ws" ist die vor Aktivierung dieses Makro aktive Tabelle. Am Ende des Makros wird sie wieder aktiviert.
Werner R.
End Sub