Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Zufallszahl in UserForm-ListBox zentriert anzeigen

Gruppe

ListBox

Problem

Wie kann ich eine nach dem Zufallsprinzip ermittelte Zahl in einer UserForm-ListBox immer zentriert anzeigen lassen?

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.

ClassModule: frmZufall

Private Sub cmdWeiter_Click()
   Unload Me
End Sub

Private Sub cmdZufall_Click()
   Dim iCount As Integer, iAct As Integer
   iAct = lstZufall.ListIndex
   Randomize
   iCount = Int((100 * Rnd) + 1)
   iCount = iCount - 1
   If iCount > 2 And iCount < 98 Then
      If iAct > iCount Then
         lstZufall.ListIndex = iCount - 2
         lstZufall.ListIndex = iCount
      Else
         lstZufall.ListIndex = iCount + 2
         lstZufall.ListIndex = iCount
      End If
   Else
      lstZufall.ListIndex = iCount
   End If
End Sub

Private Sub UserForm_Initialize()
   Dim iCounter As Integer
   For iCounter = 1 To 100
      lstZufall.AddItem iCounter
   Next iCounter
End Sub

StandardModule: basMain

Sub CallForm()
   frmZufall.Show
End Sub