Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA: Label mit einer Zeit belegen ([h]:mm)

Forumthread: VBA: Label mit einer Zeit belegen ([h]:mm)

VBA: Label mit einer Zeit belegen ([h]:mm)
15.01.2026 14:18:39
KSMBln
Hallo,
Ich habe auf Eurer Seite eine schöne Formel gefunden, die ich gut gebrauchen kann:
"Range("B1").Value = Application.WorksheetFunction.SVerweis(Range("A1").Value, Range("D1:E10"), 2, False)"

Diese habe ich dann für mich in der Userform umgeschrieben zu:
"Label_SdtZ1.Caption = Application.WorksheetFunction.HLookup(ComboBox_Monat.Text, Worksheets("Statistik").Range("MatStatJahr"), 18, False)"
MatStatJahr = 25 Spalten (Jan-Dez+gesamt) * 28 Zeilen mit diversen Zeitangaben im Forman [h]:mm

Wa qird durch ein Pulldown (ComboBox_Monat) der Monat ausgewählt der dann als Suchparameter in "MatStatJahr" (Zellen I20-AG51) verwendet wird.
Soweit funktioniert die Formel sehr gut. Sie holt sich die Zeiten aus einer Matrix in dem sie den Monat sucht, dann 18 Zellen nach unten geht und die dort enthaltene Zeit (Zellenformat [h]:mm) ausliest. Im entsprechendem Laben wird dies aber als Zahl (z.B. 1,46789) dargestellt.
Ich hatte schon versucht den Teil aus der Tabelle mit ".text" zu versehen (...Worksheets("Statistik").Range("MatStatJahr").text,...) hat zum Fehler geführt. Wie auch ans Ende den ".text" zu setzen. auch ein am Ende "/24" hat auch nur eine Zahl gebracht.

Wie kann ich in Label_StdZ1 das Format "[h]:mm" (z.B. 35:26) richtig anzeigen lassen?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Label mit einer Zeit belegen ([h]:mm)
15.01.2026 14:27:44
Onur
Poste die Datei oder eine Beispielsversion davon.
AW: VBA: Label mit einer Zeit belegen ([h]:mm)
15.01.2026 14:31:15
daniel
Hi
das mit dem .Text funktioniert nur, wenn du einen Zellwert direkt ausliest (Range(...).Text oder Cells(...).Text)
Funktionen "sehen" immer nur den unformatierten Zellwert (entspricht .Value)

die Formatierung musst du dann selber mit einer weiteren Funktion (Format oder Worksheetfunction.Text) hinzufügen.
du brauchst hier das Worksheetfunction.text, weil Format die "[]" nicht kennt.

Label_SdtZ1.Caption = Worksheetfunction.Text(WorksheetFunction.HLookup(...), "[h]:mm")


du kannst das aber auch komplett makro-Frei machen:
1. verknüpfe die Combobox_Monat mit einer Ausgabezelle (Adresse in eigenschaft ControlSource eintragen)
2. schreibe in eine freie Zelle deine Berechnungsformel, verwende die Ausgabezelle der Combobox für den ersten Parameter und gib ihr das passende Zahlenformat
3. Ersetze das Label Label_SdtZ1 durch eine Listbox. Verknüpfe diese Listbox mit der Berechnungszelle, in dem du die Adresse dieser Zelle in die Eigenschaft RowSource einträgst. Bei dieser Werknüpfungsmethode zeigt die Listbox den formatierten Zellwert an.
wenn du die Eigenschaften der Listbox etwas anpasst, sieht sie auch aus wie ein Label.

Gruß Daniel
Anzeige
AW: VBA: Label mit einer Zeit belegen ([h]:mm)
15.01.2026 15:37:27
KSMBln
Hi Daniel,

Danke für deine hilfe, dies Hilft und sieht jetzt so aus wie ich es möchte. Das ist jetzt zwar eine sehr lange Formel, aber für mich ist dies OK :))
AW: VBA: Label mit einer Zeit belegen ([h]:mm)
15.01.2026 15:50:50
daniel
Hi
VBA erlaubt dir, lange Formeln in einzelne Teilschritte zu zerlegen:
statt einem langen
LabelX = Application.Worksheetfunction.Text(Application.Worksheetfunction.HLookUp(...))

kannst du auch in mehrere Zeilen gehen:
x = Application.Worksheetfunction.HLookUp(...)

x = Application.Worksheetfunction.Text(x)
LabelX = x

das erlaubt dir nicht nur, die einzelnen Schritte zu kommentieren (um das Verständnis des Codes zu erleichtern), sondern würde es dir auch erlauben, den Fehler abzufangen der beim HLookUp entstehen kann (was hier aber nicht notwendig sein sollte, da die Suchwerte ja über die Combobox vorgegeben sind)

Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige