Nur bestimmten Bereich in einer UserForm scrollen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Nur bestimmten Bereich in einer UserForm scrollen
von: ManAtVBA
Geschrieben am: 06.05.2015 15:18:58

Hallo Leute,
nach vielen vielen Volltreffern hier im Forum bin ich leider doch an ein Problem gestoßen für das ich ihr im Forum keine Lösung finden konnte.
Vorweg: Ich beschäftige mich erst seit c.a 3 Wochen mit VBA, somit sind meine Kenntnisse in diesem Gebiet nicht gerade die Besten.
Zu meinem Problem:
Ich möchte mir eine UserForm anlegen, die mir Namen aus einem Zwischenspeicher in untereinander angeordneten OptionButtons anzeigt. Die Anzahl der Namen, die im Zwischenspeicher (Unsichtbares Tabellenblatt im selben Projekt) vorhanden sind, kann je nach Projekt variieren. Nachdem der entsprechende Name ausgewählt wurde, soll dann mit einem einfach Button der Name für den weiteren Verlauf gespeichert werden.
Funktioniert auch so weit ganz gut. Nur kann es aber vorkommen, dass zu viele Namen ausgelesen werden und diese dann über den Rand meiner UserForm geschrieben werden. Sprich ich kann sie nicht mehr sehen geschweige denn auswählen.
Aber gibt es eine Möglichkeit nur die eingelesenen Namen zu "Scrollen" ? Sodass mein Button "Weiter" immer an der selben Stelle bleibt?
Ich habe bis jetzt nur die Optionen unter der UserForm gefunden (ScrollBars fmScrollBarsVertical und ScrollHeightlen) Jedoch möchte ich eben nicht die ganze UserForm scrollen.
Hoffe das mir jemand bei meinem Problem helfen kann und ich ausführlich genug mein Problem schildern konnte *Thumb*


Bild

Betrifft: AW: Nur bestimmten Bereich in einer UserForm scrollen
von: Hajo_Zi
Geschrieben am: 06.05.2015 15:23:53
Du hast Extra keine Datei verlinkt, da Du die Lösung selber an Deine Bedingungen anpassen wolltest. Viel Erfolg. Ich bin dann raus.
http://hajo-excel.de/chCounter3/getfile.php?id=331


Bild

Betrifft: AW: Nur bestimmten Bereich in einer UserForm scrollen
von: ManAtVBA
Geschrieben am: 06.05.2015 16:15:03
Hallo Hajo,
vielen vielen Dank für deine Hilfe! Deine Version ohne Button gefällt mir eigentlich sehr gut! Jetzt muss ich nur noch herausfinden wie das ganze funktioniert :O Da merkt man doch gleich, dass man so gut wie keine Ahnung hat :D

Bild

Betrifft: AW: Nur bestimmten Bereich in einer UserForm scrollen
von: Nepumuk
Geschrieben am: 06.05.2015 16:17:53
Hallo,
ich hab dir mal ein Beispiel gemacht. Das was du scrollen kannst ist ein Frame-Control in dem sich ein paar Labels befinden.
https://www.herber.de/bbs/user/97501.xls
Gruß
Nepumuk

Bild

Betrifft: AW: Nur bestimmten Bereich in einer UserForm scrollen
von: ManAtVBA
Geschrieben am: 07.05.2015 08:57:17
Auch dir vielen Dank Nepumuk! *Thumb*
Wer es gebrauchen kann, hier der wichtigste Teil des Programmes: (Hoffe den Profis graut's nicht :D )

Private Sub UserForm_Activate()
Dim wkbAktuell As Workbook
Dim wksEingabe As Worksheet
Dim wksZwischenablage As Worksheet
Dim AnzahlSchaltsignale As Long
Dim krit1 As Long
Dim a As MSForms.OptionButton
Set wkbAktuell = ActiveWorkbook
Set wksEingabe = wkbAktuell.Worksheets("Eingabe")
Set wksZwischenablage = wkbAktuell.Worksheets("Zwischenablage")
    wksZwischenablage.Visible = xlSheetVisible
    
'Erstellung der OptionButtons###############################################################
krit1 = 0
AnzahlSchaltsignale = wksZwischenablage.Cells(1, 3)
If AnzahlSchaltsignale >= 6 Then
    Me.frmRahmen.ScrollBars = fmScrollBarsVertical
    Me.frmRahmen.ScrollHeight = 22 * AnzahlSchaltsignale
End If
For s = 1 To AnzahlSchaltsignale ' AnzahlSchaltsignale
    Set a = Me.frmRahmen.Controls.Add("Forms.OptionButton.1", "OB" & s, True)
    With a
        .Caption = wksZwischenablage.Cells(s, 4)
        .Left = 10
        .Top = (10 + krit1)
        .Width = 300
        .Height = 30
        .Value = False
    End With
    krit1 = krit1 + 20
Next s
wksZwischenablage.Visible = xlSheetHidden
End Sub
----------------------------------------------------------------------------------------------
Private Sub cmdWeiter_Click()
Dim wkbAktuell As Workbook
Dim wksEingabe As Worksheet
Dim wksZwischenablage As Worksheet
Dim AnzahlSchaltsignale As Long
Dim OB As MSForms.OptionButton
Set wkbAktuell = ActiveWorkbook
Set wksEingabe = wkbAktuell.Worksheets("Eingabe")
Set wksZwischenablage = wkbAktuell.Worksheets("Zwischenablage")
    wksZwischenablage.Visible = xlSheetVisible
AnzahlSchaltsignale = wksZwischenablage.Cells(1, 3)
For Each OB In frmRahmen.Controls
    If OB.Value = True Then
        wksZwischenablage.Cells(20, "I") = OB.Caption
    End If
Next OB
Unload Me
'wksZwischenablage.Visible = xlSheetHidden
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Nur bestimmten Bereich in einer UserForm scrollen"