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

Forumthread: Datum als Dropdown

Datum als Dropdown
07.05.2004 15:24:21
Matthias
Hi,
weiß jemand wie man unter Excel ein Dropdown Feld erstellen kann wo der jeweilige benutzer in getrennten dropdownfeldern Jahr, Monat und Tag eingeben kann? zusätzlich soll Excel in den Dropdown nur die korreten auswahlmöglichkeiten an anzahl der Tage des angegebenen Monats im angegebenen Jahr auflisten.
Danke schon mal im vorraus
Mfg Matthias
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Auch mit Berechnung der Schaltjahre?
OliveR
Hallo Matthias,
1. sollen auch die Schaltjahre berechnet werden?
2. Wieviele Jahre soll man denn auswählen können?
Gruß
OliveR
AW: Auch mit Berechnung der Schaltjahre?
08.05.2004 14:46:46
Matthias
hi,
zu 1: ja
zu 2: bis 2010
Datum als Dropdown im Tabellenblatt
07.05.2004 16:28:11
GraFri
Hallo


'In 'DieseArbeitsmappe'
Private Sub Workbook_Open()
Dim n       As Integer
Dim x       As Integer
Dim Letzter As Integer
'ComboBox 'cmbJahr' mit den Jahren füllen
With Worksheets("Tabelle1").cmbJahr
  For n = 1990 To 2010
    .AddItem n
    If n = Year(Date) Then x = n - 1990 + 1
  Next n
  .ListIndex = x
End With
'ComboBox 'cmbMonat' mit den Monatsnamen füllen
With Worksheets("Tabelle1").cmbMonat
  For n = 1 To 12
    .AddItem Format(DateSerial(2004, n, 1), "mmmm")
    If n = Month(Date) Then x = n - 1
  Next n
  .ListIndex = x
End With
'ComboBox 'cmbTag' mit den Tagen des Monats füllen
'Letzten Tag des aktuellen Monats bestimmen
  Letzter = DateSerial(Year(Date), Month(Date) + 1, 1) - _
            DateSerial(Year(Date), Month(Date), 1)
With Worksheets("Tabelle1").cmbTag
  For n = 1 To Letzter
    .AddItem n
    If n = Day(Date) Then x = n - 1
  Next n
  .ListIndex = x
End With
End Sub
'---------------------------------------------------------
'In die 'Tabelle1'
Private Sub cmbMonat_Change()
Dim Monat       As Integer
Dim Tag         As Integer
  
  Tag = Worksheets("Tabelle1").cmbTag.ListIndex
  
  Monat = Worksheets("Tabelle1").cmbMonat.ListIndex + 1
'ComboBox 'cmbTag' mit den Tagen des Monats füllen
'Letzten Tag des aktuellen Monats bestimmen
  Letzter = DateSerial(Year(Date), Monat + 1, 1) - _
            DateSerial(Year(Date), Monat, 1)
  With Worksheets("Tabelle1").cmbTag
    .Clear
    For n = 1 To Letzter
      .AddItem n
    Next n
  
'wenn möglich, den eingestellten Tag belassen
  On Error GoTo errHandle
    .ListIndex = Tag
  
  Exit Sub
  
errHandle:
    .ListIndex = -1
  
  End With
End Sub


Mit freundlichen Grüßen, GraFri
Anzeige
Datum als Dropdown im Tabellenblatt _ Verbesserung
07.05.2004 16:52:30
GraFri
Hallo


'In 'DieseArbeitsmappe'
Private Sub Workbook_Open()
Dim n       As Integer
Dim x       As Integer
Dim Letzter As Integer
'ComboBox 'cmbJahr' mit den Jahren füllen
With Worksheets("Tabelle1").cmbJahr
  .Clear
  For n = 1990 To 2010
    .AddItem n
    If n = Year(Date) Then x = n - 1990 + 1
  Next n
  .ListIndex = x
End With
'ComboBox 'cmbMonat' mit den Monatsnamen füllen
With Worksheets("Tabelle1").cmbMonat
  .Clear
  For n = 1 To 12
    .AddItem Format(DateSerial(2004, n, 1), "mmmm")
    If n = Month(Date) Then x = n - 1
  Next n
  .ListIndex = x
End With
'ComboBox 'cmbTag' mit den Tagen des Monats füllen
'Letzten Tag des aktuellen Monats bestimmen
  Letzter = DateSerial(Year(Date), Month(Date) + 1, 1) - _
            DateSerial(Year(Date), Month(Date), 1)
With Worksheets("Tabelle1").cmbTag
  .Clear
  For n = 1 To Letzter
    .AddItem n
    If n = Day(Date) Then x = n - 1
  Next n
  .ListIndex = x
End With
End Sub
'---------------------------------------------------------
'In die 'Tabelle1'
Private Sub cmbMonat_Change()
Dim Monat       As Integer
Dim Tag         As Integer
  
  Tag = Worksheets("Tabelle1").cmbTag.ListIndex
  
  Monat = Worksheets("Tabelle1").cmbMonat.ListIndex + 1
'ComboBox 'cmbTag' mit den Tagen des Monats füllen
'Letzten Tag des aktuellen Monats bestimmen
  Letzter = DateSerial(Year(Date), Monat + 1, 1) - _
            DateSerial(Year(Date), Monat, 1)
  With Worksheets("Tabelle1").cmbTag
    .Clear
    For n = 1 To Letzter
      .AddItem n
    Next n
  
'wenn möglich, den eingestellten Tag belassen
  On Error GoTo errHandle
    .ListIndex = Tag
  
  Exit Sub
  
errHandle:
    .ListIndex = -1
  
  End With
End Sub


Mit freundlichen Grüßen, GraFri
Anzeige
Mit Schaltjahr für Februar
OliveR
Nur im zweiten Teil.
'In die 'Tabelle1'

Private Sub cmbMonat_Change()
Dim Monat       As Integer
Dim Tag         As Integer
Dim myJahr      AS Integer
Tag = Worksheets("Tabelle1").cmbTag.ListIndex
Monat = Worksheets("Tabelle1").cmbMonat.ListIndex + 1
'ComboBox 'cmbTag' mit den Tagen des Monats füllen
'Letzten Tag des aktuellen Monats bestimmen
Letzter = DateSerial(myJahr, Monat + 1, 1) - _
DateSerial(myJahr, Monat, 1)
With Worksheets("Tabelle1").cmbTag
.Clear
For n = 1 To Letzter
.AddItem n
Next n
'wenn möglich, den eingestellten Tag belassen
On Error GoTo errHandle
.ListIndex = Tag
Exit Sub
errHandle:
.ListIndex = -1
End With
End Sub

Anzeige
AW: Mit Schaltjahr für Februar
08.05.2004 14:49:40
Matthias
cool,
danke euch!
;
Anzeige
Anzeige

Infobox / Tutorial

Dropdown für Datum in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein Dropdown für Datum in Excel zu erstellen, folge diesen Schritten:

  1. Öffne Excel und wähle die Registerkarte „Entwicklertools“. Wenn diese nicht sichtbar ist, aktiviere sie über die Excel-Optionen.

  2. Füge ein Kombinationsfeld (ComboBox) hinzu:

    • Klicke auf „Einfügen“ und wähle die ComboBox aus den Formularsteuerelementen aus.
    • Ziehe das ComboBox-Feld auf dein Arbeitsblatt.
  3. Fülle das ComboBox mit Jahren:

    • Öffne den Visual Basic for Applications (VBA) Editor (ALT + F11).
    • Füge den folgenden Code in das „DieseArbeitsmappe“-Modul ein:
    Private Sub Workbook_Open()
       Dim n As Integer
       Dim x As Integer
       With Worksheets("Tabelle1").cmbJahr
           For n = 1990 To 2010
               .AddItem n
               If n = Year(Date) Then x = n - 1990 + 1
           Next n
           .ListIndex = x
       End With
    End Sub
  4. Fülle das ComboBox für Monate:

    • Füge den folgenden Code hinzu:
    With Worksheets("Tabelle1").cmbMonat
       For n = 1 To 12
           .AddItem Format(DateSerial(2004, n, 1), "mmmm")
       Next n
    End With
  5. Fülle das ComboBox für Tage:

    • Nutze den folgenden Code, um die Tage entsprechend dem ausgewählten Monat und Jahr anzuzeigen:
    Private Sub cmbMonat_Change()
       Dim Monat As Integer
       Dim Letzter As Integer
       Monat = Worksheets("Tabelle1").cmbMonat.ListIndex + 1
       Letzter = Day(DateSerial(Year(Date), Monat + 1, 1) - 1)
       With Worksheets("Tabelle1").cmbTag
           .Clear
           For n = 1 To Letzter
               .AddItem n
           Next n
       End With
    End Sub
  6. Führe die Makros aus: Schließe den VBA-Editor und teste die Funktionalität deiner Dropdowns.


Häufige Fehler und Lösungen

  • Fehler: Die Dropdowns zeigen keine Werte an.

    • Lösung: Stelle sicher, dass die ComboBoxen korrekt benannt sind und dass der VBA-Code in das richtige Arbeitsblatt-Modul eingefügt wurde.
  • Fehler: Tage für Februar sind nicht korrekt.

    • Lösung: Integriere die Berechnung für Schaltjahre in den Code, um sicherzustellen, dass der Februar die richtigen Tage anzeigt.

Alternative Methoden

Eine einfache Methode, um ein Datum Dropdown in Excel zu erstellen, ist die Verwendung von Datenüberprüfung:

  1. Erstelle eine Liste mit gültigen Datumswerten auf einem anderen Arbeitsblatt oder Bereich.
  2. Wähle die Zelle aus, die das Dropdown enthalten soll.
  3. Gehe zu „Daten“ > „Datenüberprüfung“ und wähle „Liste“ als Kriterium.
  4. Wähle den Bereich mit den Datumswerten aus.

Diese Methode ist weniger dynamisch, aber einfach zu implementieren.


Praktische Beispiele

Hier ist ein Beispiel, wie die Dropdowns in einem Excel-Dokument aussehen könnten:

  • Jahr: 2000, 2001, ..., 2010
  • Monat: Januar, Februar, ..., Dezember
  • Tag: 1, 2, ..., 28/29/30/31 je nach Monat

Verwende dieses Beispiel als Vorlage, um deine Excel Auswahlfelder für Datum zu erstellen.


Tipps für Profis

  • Nutze Bedingte Formatierung, um bestimmte Tage hervorzuheben, wie z.B. Wochenenden oder Feiertage.
  • Du kannst auch ein Makro erstellen, das die Dropdowns beim Öffnen des Dokuments automatisch aktualisiert.
  • Überlege die Verwendung von Datenvalidierung, um sicherzustellen, dass nur gültige Datumswerte eingegeben werden.

FAQ: Häufige Fragen

1. Wie kann ich das Dropdown auf ein größeres Jahr-Intervall erweitern? Um das Jahr-Intervall zu erweitern, ändere die Werte in der For-Schleife für die Jahre im VBA-Code.

2. Was passiert, wenn ich einen ungültigen Tag auswähle? Das Dropdown wird dir nur die gültigen Tage entsprechend dem ausgewählten Monat und Jahr anzeigen. Tippfehler bei der Eingabe sind somit ausgeschlossen.

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