Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Box mit Uhrzeiten zum Auswählen?

Forumthread: Box mit Uhrzeiten zum Auswählen?

Box mit Uhrzeiten zum Auswählen?
23.10.2014 16:40:22
kasimir.h@onlinehome.de
Hallo Leute!
Ich habe da mal eine Frage. Kennt jemand von Euch den SmartTools Minikalender? Darin kann man Uhrzeiten auswählen. Ich habe mal einen Screenshot hochgeladen, damit Ihr wisst was ich meine.
Userbild
Wenn man mit der Maus über die Uhrzeiten (nur bei den Uhrzeiten) fährt, wird die Uhrzeit farblich hinterlegt. Wird eine Uhrzeit ausgewählt, wird diese in die Box in dem anderen Fenster übernommen.
Mein Ziel ist es, solch eine Auswahl zu erhalten, die dann die Uhrzeit, die ich anklicke in eine Zelle schreibt. Weiß jemand, wie man solch ein Feld, wie das welches ich rot umrandet habe, erstellen kann und mir eventuell ein Beispiel hier einstellen. Das wäre super für mich.
Gruß,
Kasimir

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Box mit Uhrzeiten zum Auswählen?
23.10.2014 22:00:26
Christian
Hallo Kasimir,
ich kenne das Tool nicht, aber laut Beschreibung bei www.Chip.de "... Sie können dann einfach das gewünschte Datum oder auch eine Uhrzeit blitzschnell per Doppelklick einfügen. ..."
sollte doch genau das möglich sein, nämlich eine Uhrzeit in eine Zelle schreiben.
Das kann man mit VBA auch umsetzen, am besten als AddIn (wahrscheinlich hat SmartTools hierbei auch VBA verwendet), aber bei deinem Level "VBA nur mit Recorder" wird das sicher eine Herausforderung.
Schau doch noch mal in der Beschreibung von dem Tool nach - vielleicht musst du ja nur irgendwo noch eine Option anhaken...
Ansosten wäre mein Vorschlag:
- erstelle in einem leeren Userform(ular) zur Laufzeit 96 Labels mit entsprechender Caption (00:00, 00:15, ...) und Position und übergebe diese Labels auch gleich an eine Klasse (Klassenmodul mit Namen zB. "clsLabel")
- in clsLabel kannst du dann für die Events (Click, MouseDown, MouseUp, etc.) für alle Labels gleichzeitig festlegen.
- der Weg über das Klassenmodul hat den entscheidenden Vorteil, dass du nicht für 96 Labels jeweils einzeln das Verhalten bei Click, MouseDown, ... festlegen must sondern dies nur einmal für alle Labels gemeinsam erzeugen musst.
Gruß
Christian

Anzeige
AW: Box mit Uhrzeiten zum Auswählen?
24.10.2014 11:01:00
Kasimir
Hallo Christian!
Danke Dir für Deine Antwort. Das was Du schreibst bezüglich des Smartools Minikalenders weiß ich. Mir geht es mehr darum, dass ich solch eine UserForm mit Uhrzeiten, wie die aus dem Minikalender, in meiner Datei benötige aber ohne eben den Minikalender. Daher meine Anfrage.
Ich habe nun mal angefangen eine solche UserForm nachzubauen und habe nun eine Frage zum Ansprechen von Eigenschaften der Labels, die zur Laufzeit eingefügt werden. Ich habe mal meine Testdatei hochgeladen, das macht es wahrscheinlich etwas einfacher.
https://www.herber.de/bbs/user/93336.xlsm
Also, ich bekomme es einfach nicht hin, den Text der erzeugten Labels in der Größe zu verändern und mittig auszurichten. Ich kann die Eigenschaft „TextAlign“ und auch keinen Eintragt für die Textgröße ansprechen, da mir der Eintrag nicht angeboten wird. Kann mir jemand hier behilflich sein und sagen, wie ich den Text der erzeugten Labels mittig setze? Das wäre fein.
Danke nochmal und auch schonmal im Voraus
Kasimir

Anzeige
AW: Box mit Uhrzeiten zum Auswählen?
24.10.2014 11:42:33
Ewald
Hallo,
du kannst es trotzdem verwenden
.FontSize = 12
.TextAlign = 2
die Breite sollte dann aber 40 sein
Gruß Ewald

AW: Box mit Uhrzeiten zum Auswählen?
24.10.2014 12:24:10
Kasimir
Hallo Ewald!
Danke Dir für Deine Antwort, es funktioniert. Obwohl ich das komisch finden, denn mit .TextAlign .... hatte ich es auch getestet und da bekam ich einen Fehler, dass dies mit dem Objekt nicht ginge. Na egal, jetzt funktionierts und das ist die Hauptsache.
gruß,
Kasimir
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Uhrzeiten in Excel mit Dropdown-Feld auswählen


Schritt-für-Schritt-Anleitung

Um ein Excel Dropdown für die Auswahl von Uhrzeiten zu erstellen, kannst du die folgenden Schritte befolgen:

  1. Erstelle eine UserForm: Öffne den VBA-Editor (ALT + F11) und füge eine neue UserForm hinzu.

  2. Füge Labels hinzu: Erstelle 96 Labels, die die Uhrzeiten repräsentieren (z.B. 00:00, 00:15, ...). Dies kannst du durch Schleifen im VBA-Code automatisieren.

  3. Setze die Eigenschaften: Stelle sicher, dass die Labels die richtigen Eigenschaften haben. Hier ist ein Beispiel, wie du die Textgröße und Ausrichtung setzen kannst:

    For i = 0 To 95
       With Me.Controls("Label" & i)
           .Caption = Format(i * 15 / 1440, "hh:mm")
           .FontSize = 12
           .TextAlign = 2 ' 2 steht für zentriert
           .Width = 40
       End With
    Next i
  4. Event-Handling: Füge Event-Handler hinzu, um die ausgewählte Uhrzeit in eine Zelle zu schreiben, wenn ein Label angeklickt wird.

    Private Sub Label_Click(Index As Integer)
       ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = Me.Controls("Label" & Index).Caption
    End Sub
  5. Starte die UserForm: Du kannst die UserForm über ein Makro oder einen Button in deinem Excel-Dokument starten.


Häufige Fehler und Lösungen

  • Fehler beim Setzen der Eigenschaften: Wenn du beim Setzen von .TextAlign einen Fehler erhältst, stelle sicher, dass du das richtige Objekt ansprichst. Verwende die .TextAlign-Eigenschaft nur für Steuerelemente, die diese unterstützen.

  • Labels werden nicht angezeigt: Überprüfe, ob die Labels korrekt in der UserForm platziert sind und dass ihre Sichtbarkeit auf True gesetzt ist.


Alternative Methoden

Eine einfachere Methode zur Erstellung eines Excel Uhrzeit Auswahlfeld könnte die Verwendung von Datenüberprüfung sein, um ein Dropdown mit vordefinierten Uhrzeiten zu erstellen:

  1. Erstelle eine Liste von Uhrzeiten in einem Arbeitsblatt (z.B. in Spalte A).
  2. Wähle die Zelle aus, in der du das Dropdown haben möchtest.
  3. Gehe zu Daten > Datenüberprüfung und wähle Liste aus.
  4. Gib den Bereich deiner Uhrzeiten ein (z.B. =$A$1:$A$96).

Praktische Beispiele

Hier ist ein Beispiel, wie du eine UserForm mit Uhrzeiten erstellen kannst:

Private Sub UserForm_Initialize()
    For i = 0 To 95
        Dim lbl As MSForms.Label
        Set lbl = Me.Controls.Add("Forms.Label.1", "Label" & i)
        lbl.Caption = Format(i * 15 / 1440, "hh:mm")
        lbl.Top = 10 + (i * 20)
        lbl.Width = 40
        lbl.Height = 15
        lbl.TextAlign = 2 ' Zentriert
        AddHandler lbl.Click, AddressOf Label_Click
    Next i
End Sub

Dieses Beispiel zeigt, wie du die Labels zur Laufzeit generieren und deren Eigenschaften festlegen kannst.


Tipps für Profis

  • VBA-Optimierung: Wenn du eine große Anzahl von Steuerelementen erstellst, überlege, ob du die Leistung durch die Verwendung von Klassenmodulen optimieren kannst.
  • Styling: Experimentiere mit verschiedenen Schriftarten und Farben, um die Benutzeroberfläche ansprechender zu gestalten.
  • Erweiterungen: Du kannst zusätzliche Funktionen hinzufügen, wie z.B. das Speichern der zuletzt gewählten Uhrzeit.

FAQ: Häufige Fragen

1. Wie kann ich die Uhrzeiten in einem bestimmten Intervall ändern?
Du kannst die Intervalle in der Schleife anpassen, indem du den Wert 15 in der Schleife durch dein gewünschtes Intervall ersetzt.

2. Ist es möglich, die Auswahl mit einem Klick in eine andere Zelle zu schreiben?
Ja, du kannst den Event-Handler so anpassen, dass er die Auswahl in jede beliebige Zelle schreibt, indem du die Zielzelle im Code änderst.

3. Funktioniert das auch in Excel 365?
Ja, diese Methoden sind in den meisten Excel-Versionen, einschließlich Excel 365, anwendbar.

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