Excel Datumsauswahl - Wie füge ich eine Datumsauswahl (Kalender) in Excel ein?

Wie füge ich die Datumsauswahl in Excel ein?

Zum Einfügen eines Dropdown-Kalenders verwenden wir ein ActiveX-Steuerelement, das "Microsoft Date and Time Picker Control 6.0 (SP6)" ist .

Angenommen, wir müssen Daten für Mitarbeiter eines Unternehmens pflegen. Es gibt mehrere Felder wie

  • Emp Code
  • Emp Name
  • Emp Beitrittsdatum
  • Emp Abteilung

Um Daten in MS Excel einzugeben, haben wir das folgende Format erstellt.

Um das Emp-Beitrittsdatum einzugeben, müssen wir einen Dropdown-Kalender erstellen, damit der Benutzer die Beitrittsdaten leichter eingeben kann.

Um einen Dropdown-Kalender zu erstellen, gehen Sie wie folgt vor:

Wir müssen ein 'ActiveX-Steuerelement' mit dem Namen 'Microsoft Date and Time Picker Control 6.0 (SP6)' einfügen . Zum Einfügen verwenden wir den Befehl 'Einfügen' unter der Gruppe 'Steuerelemente' im 'Entwickler'.

Wenn die Registerkarte "Entwickler" nicht sichtbar ist, führen Sie die folgenden Schritte aus, um sie sichtbar zu machen.

  • Schritt 1: Unter dem ‚Datei‘ Wählen Sie im Menü ‚Optionen‘
  • Schritt 2: Ein Dialogfeld mit dem Namen "Excel-Optionen" wird geöffnet. Wählen Sie am linken Rand des Dialogfelds die Option "Multifunktionsleiste anpassen". Aktivieren Sie das Kontrollkästchen für die Registerkarte "Entwickler" und klicken Sie auf "OK".
  • Schritt 3: Jetzt sehen wir die Registerkarte "Entwickler" am letzten Rand des Menübands.
  • Schritt 4: Wählen Sie unter ActiveX-Steuerelemente die Option "Weitere Steuerelemente" .
  • Schritt 5: Wählen Sie "Microsoft Date and Time Picker Control 6.0 (SP6)" aus der Liste und klicken Sie auf "OK".
  • Schritt 6: Klicken Sie auf eine beliebige Stelle im Arbeitsblatt, um den Dropdown-Kalender zu erstellen.
  • Schritt 7: Klicken Sie mit der rechten Maustaste auf "Datumsauswahl" und wählen Sie "Eigenschaften" aus der Liste.
  • Schritt 8: Ändern Sie den Wert für die Eigenschaft 'CheckBox' von 'False' in 'True' , damit auch Nullwerte akzeptiert werden können. Schließen Sie das Dialogfeld "Eigenschaften" .
  • Schritt 9: Klicken Sie erneut mit der rechten Maustaste auf Datumsauswahl und wählen Sie im Kontextmenü die Option "Code anzeigen".
  • Schritt 10: In 'Visual Basic Editor' können wir sehen, dass bereits Code geschrieben wurde. Ersetzen Sie den Code durch den folgenden Code.

Code:

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) mit Sheet1.DTPicker1 .Height = 20 .Width = 20 Wenn nicht überschneiden (Ziel, Bereich ("C: C")) ist nichts dann .Visible = True .Top = Target.Top. Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub
  • Schritt 11: Die erste Anweisung im Code weist den MS Excel Compiler an, den Code auszuführen, wenn eine neue Zelle ausgewählt wird (Auswahl wird geändert). Die ausgewählte Zelle wird als "Ziel" an die Unterprozedur gesendet .
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
  • Schritt 12: Mit diesen Anweisungen werden Höhe und Breite der Datumsauswahl in Excel auf 20 Punkte festgelegt. Es ist zu beobachten, dass wir den Operator 'With' verwendet haben , damit wir nicht immer wieder auf DTPicker1 verweisen müssen .
 Mit Sheet1.DTPicker1 .Height = 20 .Width = 20
  • Schritt 13: Die folgende 'If'- Klausel legt die Kriterien fest , nach denen nur dann die Datumsauswahl sichtbar wird , wenn eine Zelle in der Spalte ' C ' ausgewählt wird. Wir haben die Funktion 'Intersect' verwendet, da diese Funktion prüft, ob wir eine Zelle in der Spalte C ausgewählt haben. Diese Funktion gibt dann die Adresse zurück. Andernfalls wäre der Wert null.
Wenn sich nicht überschneiden (Ziel, Bereich ("C: C")), ist nichts .Visible = True
  • Schritt 14: Die Eigenschaft 'Top' der Datumsauswahl wird gleich dem Eigenschaftswert 'Top' der ausgewählten Zelle gesetzt. Dies bedeutet, dass dies mit dem oberen Rand der ausgewählten Zelle einhergeht.
.Top = Target.Top
  • Schritt 15: Mit dieser Anweisung wird die linke Eigenschaft der Datumsauswahl gleich der der nächsten rechten Zelle der ausgewählten Zelle gesetzt (Abstand des linken Randes der D-Spalte von der äußersten linken Seite des Arbeitsblatts). Um die Referenz der nächsten rechten Zelle zu erhalten, haben wir die Funktion 'Offset' mit 0 als Zeilenargument und 1 als Spaltenargument verwendet, da dies eine Referenz auf die Zelle in der nächsten Spalte erhält.
.Left = Target.Offset (0, 1) .Left
  • Schritt 16: Diese Anweisung verknüpft die Datumsauswahl mit der Zielzelle, sodass der Wert im Dropdown-Kalender ausgewählt wird, der in der Zelle angezeigt wird.
.LinkedCell = Target.Address
  • Schritt 17: Die Anweisung 'Else' weist den Compiler an, die Datumsauswahl nicht anzuzeigen, wenn eine Zelle außer der in der Spalte C ausgewählt ist.
Sonst .Visible = False
  • Schritt 18: Am Ende schließen wir das "Wenn".
End If
  • Schritt 19: Endlich müssen wir 'Mit' schließen .
Ende mit
  • Schritt 20: Nun endet die Unterprozedur.
End Sub

Stellen Sie sicher, dass wir die Datei mit der Erweiterung '.xlsm' speichern, da sie den von uns geschriebenen VBA-Code speichert, und dass wir diesen Code ausführen können, wenn eine Zelle in der Spalte C ausgewählt ist.

Now, whenever we select any cell in the ‘C’ column, we can see a drop-down calendar at the top right corner of the selected cell. We can open the drop-down calendar by clicking on the down arrow symbol.

We need to click on any date in the calendar in the selected month to enter that date in the selected cell.

We can change month to previous or next using the arrow button placed at the left and right side of the calendar.

We can also click on the month to choose a month from the drop-down.

We can also change year by clicking on year and then using up and down arrows to choose the required one.

Things to Remember

  • ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of MS Excel.
  • Nach dem Schreiben des VBA-Codes müssen wir die Datei mit der Erweiterung '.xlsm' (Excel Macro-Enabled Workbook) speichern. Andernfalls würde der VBA-Code nicht ausgeführt.

Interessante Beiträge...