Userform

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

Betrifft: Userform
von: Reinhardt Springer
Geschrieben am: 20.08.2015 10:42:34

Hallo,
wenn ich meine Userform starte, oder wieder aufrufe, steht der blaue Auswahlbalken/Cursor immer an einer bestimmten Stelle, obwohl ich die Zelle zum ControlSource (P6) gelöscht habe.
Wie kann man die USF ohne den Balken starten, und dieser erst nach dem ersten Klick
erscheint?
Und eine Zusatzfrage:
Kann man in einer USF mit dem Mittelrad der Maus scrollen?

Private Sub UserForm_Initialize()
'Userform5 Archiv
Sheets("Formular").Select
Sheets("Formular").Range("P6").Value = ""
'Sheets("Archiv").Select
    With ListBox1
        .ColumnCount = 11
        .ColumnWidths = "0;2cm;1cm;7cm;3cm;7cm;2cm;5cm;5cm;3cm;3cm"
        .ColumnHeads = True 'False
    ListBox1.RowSource = "Archiv!A4:M6000"
    ListBox1.ControlSource = "Formular!P6"
    End With
Sheets("Formular").Select
End Sub

Bild

Betrifft: AW: Userform
von: fcs
Geschrieben am: 22.08.2015 00:33:26
Hallo Reinhard,
zur 1. Frage:
Listbox ohne Auswahlwert starten.
Man setzt den Listindex der Listbox auf -1
Der Inhalt der verknüpften Zelle (ControlSource) wird dann gelöscht.
Wenn du das Userform per Hide-Methode ausblendest/beendest, dann musst du die Anweisung zum Setzen der Listbox auf Listindex =-1 in der Activate-Prozedur des Userforms einfügen.

Private Sub CommandButton1_Click()
    Me.Hide
End Sub
Private Sub UserForm_Activate()
    ListBox1.ListIndex = -1  'Listbox ohne Auswahl - Inhalt verknüpfte Zelle wird gelöscht.
End Sub
Private Sub UserForm_Initialize()
'Userform5 Archiv
    Dim Zeile_L
    Sheets("Formular").Select
'    Sheets("Formular").Range("P6").Value = ""
    'Sheets("Archiv").Select
    'Letzte benutzte Zeile im Archiv
    With Sheets("Archiv").UsedRange
        Zeile_L = .Row + .Rows.Count - 1
        If Zeile_L < 4 Then Zeile_L = 4
    End With
    
    With ListBox1
        .ColumnCount = 11
        .ColumnWidths = "0;2cm;1cm;7cm;3cm;7cm;2cm;5cm;5cm;3cm;3cm"
        .ColumnHeads = True 'False
        .RowSource = "Archiv!A4:M" & Zeile_L
        .ControlSource = "Formular!P6"
    End With
    Sheets("Formular").Select
End Sub
Frage 2:
Scrollen im Userform per Mausrad?
Da kann ich nichts zu sagen, ich dies am mauslosen Notebook nicht testen.
Meines Wissens ist dies dies aber nicht möglich.
Wenn man in einer Listbox schnell scrollen möchte, dann sollte die Quell-Liste nach der Spalte aufsteigend sortiert sein, nach der man schnell durch die Liste scrollen möchte. Die Nummer der Spalte weist man dann der Eigenschaft "TextColumn" zu. Dann kann man durch Eingabe des Anfangsbuchstabens schnell den Startpunkt zur Auswahl setzen.
Außerdem sollte man die RowSource einer Listbox auf den tatsächlchen Datenbereich begrenzen und nicht eine willkürlich hohe Zeilennumer verwenden.
Gruß
Franz

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Userform"