Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Combobox Uhrzeit einlesen

Combobox Uhrzeit einlesen
Anja
Hallo,
ich versuche gerade bei einem Userform, eine Spalte mit Uhrzeiten in eine Combobox einzulesen, es werden mir aber nur zahlen mit komma angezeigt.
Was mache ich falsch?
mein Code ist:
With Worksheets("Tabelle1")
arr = Range("K5:K20").Value
End With
ComboBox2.List = arr
In Spalte k stehen Uhrzeiten 7:00 8:00 9:00 usw.
Vielen Dank für Hilfe
Anja
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Combobox Uhrzeit einlesen
25.08.2011 19:27:54
Frank
Hallo Anja!
Versuchs mal so:
An deinen Code anhängen:
ComboBox2 = Format(ComboBox2, "hh:mm")
Konnte ich helfen?
Gruß Frank H.!!!
AW: Combobox Uhrzeit einlesen
25.08.2011 19:35:41
Anja
Geht leider nicht :-(
AW: Combobox Uhrzeit einlesen
25.08.2011 20:00:26
Frank
Hallo Anja!
Ich noch einmal.
Private Sub ComboBox2_Change()
ComboBox2 = Format(ComboBox2, "hh:mm")
End Sub
So besser?
Gruß Frank H.!!!
Anzeige
AW: Combobox Uhrzeit einlesen
26.08.2011 01:43:30
fcs
Hallo Anja,
Uhrzeiten sind in Excel intern Dezimalzahlen von 0 bis 1. Enstsprechend ist dann auch das Ergebnis wenn man die Werteigenschaft der Zellen ausliest.
Wenn du die Zeiten im Uhrzeitformat in der Combobox haben willst, dann muss du die Texteigenschaft der Zellen einlesen und zwei zeilenweise und dann mit der AddItem-Methode der Auswahlliste der Combobox zuweisen. Alternativ kann man auch die Textwerte in ein entsprechend dimensioniertes Array einlesen und dann der Listeigenschaft der Box zuweisen.
Wenn du den ausgewählten Wert in der Combobox weiterverwenden willst, dann solltest den Text mit CDate immer in eine Zahl umwandeln.
Gruß
Franz
Private Sub CommandButton1_Click()
If Me.ComboBox2.ListIndex  -1 Then
Range("F4") = CDate(Me.ComboBox2.Value)
Unload Me
Else
MsgBox "Es wurde keine Uhrzeit ausgewählt"
End If
End Sub
Private Sub UserForm_Initialize()
Call FillCombobox2
End Sub
'Wertzuweisung über Array mit Stringwerten
Private Sub FillCombobox2()
'Uhrzeiten einlesen
Dim Zeile As Long, arr() As String
With Worksheets("Tabelle1").Range("K5:K20")
ReDim arr(1 To .Rows.Count)
For Zeile = 1 To .Rows.Count
arr(Zeile) = .Cells(Zeile, 1).Text
Next
ComboBox2.List = arr
End With
Erase arr
End Sub
'oder
'Zuweisung der Auswahlliste per AdItem-Methode
Private Sub FillCombobox2()
'Uhrzeiten einlesen
Dim Zeile As Long
With Worksheets("Tabelle1").Range("K5:K20")
Me.ComboBox2.Clear
For Zeile = 1 To .Rows.Count
Me.ComboBox2.AddItem .Cells(Zeile, 1).Text
Next
End With
End Sub

Anzeige
AW: Combobox Uhrzeit einlesen
25.08.2011 20:12:53
Gerd
Hallo Anja,
probiere es mal z.B. in der UserForm_Activate - Prozedur so:
Dim lngRow As Long
ComboBox2.Clear
For lngRow = 5 To 20
ComboBox2.AddItem Worksheets("Tabelle1").Cells(lngRow, 11).Text
Next
Gruß Gerd
;
Anzeige
Anzeige

Infobox / Tutorial

Combobox Uhrzeiten in Excel einlesen


Schritt-für-Schritt-Anleitung

Um Uhrzeiten aus einer Excel-Tabelle in eine Combobox eines Userforms einzulesen, kannst Du folgendes Vorgehen nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).
  2. Erstelle ein Userform und füge eine Combobox (ComboBox2) hinzu.
  3. Verwende den folgenden Code in Deinem Userform:
Private Sub UserForm_Initialize()
    Call FillCombobox2
End Sub

Private Sub FillCombobox2()
    Dim Zeile As Long
    Me.ComboBox2.Clear
    For Zeile = 5 To 20
        Me.ComboBox2.AddItem Worksheets("Tabelle1").Cells(Zeile, 11).Text
    Next
End Sub
  1. Stelle sicher, dass die Uhrzeiten in Spalte K (11. Spalte) im richtigen Format vorliegen.
  2. Füge einen Button hinzu, um die Auswahl zu verarbeiten:
Private Sub CommandButton1_Click()
    If Me.ComboBox2.ListIndex <> -1 Then
        Range("F4") = CDate(Me.ComboBox2.Value)
        Unload Me
    Else
        MsgBox "Es wurde keine Uhrzeit ausgewählt"
    End If
End Sub

Häufige Fehler und Lösungen

  1. Problem: Uhrzeiten erscheinen als Dezimalzahlen

    • Lösung: Stelle sicher, dass Du die .Text-Eigenschaft der Zellen verwendest, statt der .Value-Eigenschaft. So erhältst Du die formatierte Uhrzeit.
  2. Problem: Formatierung in der Combobox funktioniert nicht

    • Lösung: Ergänze den Code wie folgt, um die Formatierung direkt anzuwenden:
Private Sub ComboBox2_Change()
    ComboBox2 = Format(ComboBox2, "hh:mm")
End Sub

Alternative Methoden

Wenn Du eine andere Methode zur Befüllung der Combobox verwenden möchtest, kannst Du diese Ansätze ausprobieren:

  1. Wertzuweisung über ein Array:

    Private Sub FillCombobox2()
       Dim Zeile As Long, arr() As String
       With Worksheets("Tabelle1").Range("K5:K20")
           ReDim arr(1 To .Rows.Count)
           For Zeile = 1 To .Rows.Count
               arr(Zeile) = .Cells(Zeile, 1).Text
           Next
           ComboBox2.List = arr
       End With
    End Sub
  2. AddItem-Methode:

    Private Sub FillCombobox2()
       Dim Zeile As Long
       With Worksheets("Tabelle1").Range("K5:K20")
           Me.ComboBox2.Clear
           For Zeile = 1 To .Rows.Count
               Me.ComboBox2.AddItem .Cells(Zeile, 1).Text
           Next
       End With
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, die Du direkt in Deinen VBA-Code integrieren kannst:

  • Füge die Uhrzeiten von 07:00 bis 20:00 Uhr in die Combobox ein:
Private Sub FillCombobox2()
    Dim Uhrzeit As Date
    Me.ComboBox2.Clear
    For Uhrzeit = TimeValue("07:00") To TimeValue("20:00") Step TimeValue("01:00")
        Me.ComboBox2.AddItem Format(Uhrzeit, "hh:mm")
    Next Uhrzeit
End Sub

Tipps für Profis

  • Verwendung von CDate: Wenn Du die ausgewählte Uhrzeit in einem anderen Format benötigst, verwende CDate, um sicherzustellen, dass die Umwandlung korrekt ist.
  • Datenvalidierung: Überprüfe die Eingaben in der Combobox und verhindere, dass leere Werte gespeichert werden.
  • Verwende die .Value-Eigenschaft: Wenn Du die Uhrzeiten als numerische Werte weiterverarbeiten möchtest, nutze die .Value-Eigenschaft anstelle der .Text-Eigenschaft.

FAQ: Häufige Fragen

1. Warum werden in meiner Combobox nur Zahlen angezeigt? Die Uhrzeiten in Excel sind intern als Dezimalzahlen gespeichert. Stelle sicher, dass Du die .Text-Eigenschaft verwendest, um die Uhrzeiten im gewünschten Format anzuzeigen.

2. Wie kann ich die Uhrzeiten formatieren? Du kannst die Formatierung direkt in der Combobox mit dem Format-Befehl anwenden, wie im Beispiel gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige