Selezione data di Excel

Come inserire il selettore di date in Excel?

Per inserire il calendario a discesa, utilizzeremo un controllo ActiveX  che è "Controllo selezione data e ora Microsoft 6.0 (SP6)" .

Puoi scaricare questo modello Excel per selezione data qui - Modello Excel per selezione data

Supponiamo di dover conservare i dati per i dipendenti di un'azienda. Ci sono diversi campi come

  • Codice Emp
  • Nome Emp
  • Data iscrizione Emp
  • Dipartimento di Emp

Per inserire i dati in MS Excel, abbiamo creato il seguente formato.

Per inserire Emp Joining Date, dobbiamo creare un calendario a discesa in modo che sia più facile per l'utente inserire le date di partecipazione.

Per creare un calendario a discesa, i passaggi sono riportati di seguito: 

È necessario inserire un "controllo ActiveX" denominato "Controllo selezione data e ora Microsoft 6.0 (SP6)" . Per inserire, useremo il comando "Inserisci" nel gruppo "Controlli" in "Sviluppatore"

Se la scheda "Sviluppatore" non è visibile, di seguito sono riportati i passaggi da seguire per renderla visibile.

  • Passaggio 1: nel menu "File" , seleziona "Opzioni"

  • Passaggio 2: si aprirà una finestra di dialogo denominata "Opzioni di Excel" . Scegli "Personalizza barra multifunzione" dal bordo sinistro della finestra di dialogo. Casella di controllo per la scheda "Sviluppatore" e fare clic su "OK" .

  • Passaggio 3: ora possiamo vedere la scheda "Sviluppatore" nell'ultima parte del nastro.

  • Passaggio 4: scegli "Altri controlli" da Controlli ActiveX.

  • Fase 5: Scegliere 'Microsoft Data e ora Picker Control 6.0 (SP6)' dalla lista e cliccare su 'OK' .

  • Passaggio 6: fare clic in un punto qualsiasi del foglio di lavoro per creare il calendario a discesa.

  • Passaggio 7: fare clic con il pulsante destro del mouse su " Selezione data" e selezionare "Proprietà" dall'elenco.

  • Passaggio 8: modifica il valore da "False" a "True" per la proprietà "CheckBox" in modo che possano essere accettati anche valori null. Chiudi la finestra di dialogo "Proprietà" .

  • Passaggio 9: fare nuovamente clic con il pulsante destro del mouse su Selezione data e scegliere "Visualizza codice" dal menu contestuale.

  • Passaggio 10: in "Visual Basic Editor" , possiamo vedere che del codice è già scritto. Sostituisci il codice con il codice seguente.

Codice:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) With Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True .Top = Target.Top .Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub 

  • Passaggio 11: la prima istruzione nel codice indica al compilatore di MS Excel di eseguire il codice ogni volta che viene selezionata una nuova cella (la selezione viene modificata). La cella selezionata viene inviata alla procedura Sub come "Target" .
 Foglio di lavoro secondario privato_SelectionChange (ByVal Target As Range)
  • Passaggio 12: queste istruzioni impostano l'altezza e la larghezza del selettore di date su 20 punti in Excel. Si può osservare che abbiamo utilizzato l' operatore "With" in modo da non dover fare riferimento a DTPicker1 ancora e ancora.
 Con Sheet1.DTPicker1 .Height = 20 .Width = 20
  • Passaggio 13: la seguente clausola "If" imposta i criteri per cui, se viene selezionata una cella nella colonna "C" , solo il Selettore data ottiene visibilità. Abbiamo utilizzato la funzione "Interseca" poiché questa funzione controlla se abbiamo selezionato una cella nella colonna C, quindi questa funzione restituirà l'indirizzo altrimenti il ​​valore sarebbe nullo.
 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True 
  • Passaggio 14: la proprietà "Top" del Selettore data è impostata come uguale al valore della proprietà "Top" della cella selezionata. Significa che questo andrà insieme al bordo superiore della cella selezionata.
.Top = Target.Top
  • Passaggio 15: questa istruzione imposta la proprietà sinistra del selettore data uguale a quella della cella destra successiva della cella selezionata (distanza del bordo sinistro della colonna D dall'estrema sinistra del foglio di lavoro). Per ottenere il riferimento della cella successiva a destra, abbiamo utilizzato la funzione "Offset" con 0 come argomento di riga e 1 come argomento di colonna poiché ciò otterrà un riferimento alla cella nella colonna successiva.
.Left = Target.Offset (0, 1) .Left
  • Passaggio 16: questa istruzione collega il selettore di data con la cella di destinazione in modo che qualsiasi valore sia selezionato nel calendario a discesa visualizzato nella cella.
.LinkedCell = Target.Address
  • Passaggio 17: l'istruzione "Else" indica al compilatore di non visualizzare il selettore di date quando è selezionata una cella tranne quella nella colonna C.
Else .Visible = False
  • Passaggio 18: alla fine, chiudiamo il "Se"
 Finisci se 
  • Passaggio 19: alla fine, dobbiamo chiudere "Con"
 Finisci con 
  • Passaggio 20: ora, la procedura secondaria terminerà.
 End Sub 

Assicurati di salvare il file con l' estensione '.xlsm' poiché salva il codice VBA che abbiamo scritto e saremo in grado di eseguire questo codice quando una cella è selezionata nella colonna C.

Ora ogni volta che selezioniamo una cella nella colonna "C", possiamo vedere un calendario a discesa nell'angolo in alto a destra della cella selezionata. Possiamo aprire il calendario a discesa facendo clic sul simbolo della freccia in basso.

Dobbiamo fare clic su qualsiasi data nel calendario nel mese selezionato per inserire quella data nella cella selezionata.

Possiamo cambiare il mese in precedente o successivo utilizzando il pulsante freccia posto a sinistra ea destra del calendario.

Possiamo anche fare clic sul mese per scegliere un mese dal menu a discesa.

Possiamo anche cambiare anno facendo clic su anno e quindi utilizzando le frecce su e giù per scegliere quello richiesto.

Cose da ricordare

  • "Controllo selezione data e ora Microsoft 6.0 (SP6)" non è disponibile per la versione a 64 bit di MS Excel.
  • Dopo aver scritto il codice VBA, dobbiamo salvare il file con l'estensione '.xlsm' (Excel Macro-Enabled Workbook) altrimenti il ​​codice VBA non verrebbe eseguito.