HERBERS Excel-Forum - VBA-Basics

Thema: Kombinationen

Inhaltsverzeichnis
  • 1 Erste leere Zelle ermitteln
  • 2 UserForm-Optionsfeld nach Tageszeit aktivieren
  • 3 Aktiviertes UserForm-Optionsfeld ermitteln

  • Erste leere Zelle ermitteln

    Es wird zuerst geprüft, ob Zelle A1 einen Wert besitzt. Wenn nein, wird die Prozedur verlassen. Danach wird der Zeilenzähler initialisiert. Es folgt eine Schleife über alle Zellen in Spalte A, bis die erste leere Zelle erreicht wird. Die Adresse der ersten leeren Zelle wird in einer MsgBox ausgegeben.

    
    Sub GeheBisLeer()
       Dim intRow As Integer
       If IsEmpty(Range("A1")) Then Exit Sub
       intRow = 1
       Do Until IsEmpty(Cells(intRow, 1))
          intRow = intRow + 1
       Loop
       MsgBox "Letzte Zelle mit Wert: " & _
          Cells(intRow - 1, 1).Address(False, False)
    End Sub
    

    UserForm-Optionsfeld nach Tageszeit aktivieren

    Über die SelectCase-Anweisung wird die aktuelle Stunde bestimmt und hierüber die Tageszeit bzw. das entsprechende Optionsfeld aktiviert. Die Prozedur kommt in das Klassenmodul der UserForm.

    
    
    Private Sub UserForm_Initialize()
       Select Case Hour(Time)
          Case Is > 18: optAbend.Value = True
          Case Is > 12: optMittag.Value = True
          Case Is > 6: optMorgen.Value = True
       End Select
    End Sub
    

    Aktiviertes UserForm-Optionsfeld ermitteln

    Es wird zuerst eine Objektvariable für das Control-Objekt initialisiert. Danach werden alle Controls der UserForm durchlaufen. Treffen die Bedingungen, dass es sich um ein Optionsfeld handelt und dass es aktiviert ist zu, dann wird eine entsprechende Meldung ausgegeben und die Schleife beendet.

    
    Private Sub cmdWert_Click()
       Dim cnt As Control
       For Each cnt In Controls
          If Left(cnt.Name, 3) = "opt" And cnt.Value = True Then
             MsgBox "Optionsfeld " & cnt.Name & " ist aktiviert!"
             Exit Sub
          End If
       Next cnt
    End Sub