maurogsc.eu
|
![]() |
home ==> Excel: come fare per ==> UserForm: date
UserForm: date
- VBA
NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.
1 - Per permettere all'utente di selezionare una data senza ricorrere al controllo Calendar(non sempre presente e fornito in diverse versioni) ed utilizzare poi nel codice/trasferire sul foglio la data, possiamo utilizzare questa soluzione. Creiamo una UserForm con tre ComboBox, una per i giorni, una per i mesi e una per gli anni. Questo il codice da inserire nel modulo di codice della UserForm per popolare le tre ComboBox alla creazione della UserForm :
Private Sub UserForm_Initialize()
Dim lng As Long
With Me
For lng = 1 To 31
.ComboBox1.AddItem Format(lng, "00")
Next
For lng = 1 To 12
.ComboBox2.AddItem Format(lng, "00")
Next
For lng = 1990 To 2090
.ComboBox3.AddItem lng
Next
End With
End Sub
Questo è l'aspetto della UserForm con già selezionati il giorno ed il mese e con l'anno in corso di selezione:
Questo il codice per un eventuale pulsante(CommandButton) posizionato sulla UserForm che inserisce la data selezionata nella cella attiva del file di Excel:
Private Sub CommandButton1_Click()
On Error GoTo RigaErrore
Dim d As Date
With Me
d = .ComboBox1.Text & "/" & _
.ComboBox2.Text & "/" & _
.ComboBox3.Text
End With
ActiveCell.Value = d
RigaChiusura:
Exit Sub
RigaErrore:
MsgBox "La data inserita non è corretta. Controllare che i valori selezionati.", _
vbOKOnly + vbInformation, _
"Attenzione"
Resume RigaChiusura
End Sub
Questo il codice per un eventuale pulsante(CommandButton) posizionato sulla UserForm che inserisce la data selezionata in una TextBox sulla stessa UserForm:
Private Sub CommandButton1_Click()
On Error GoTo RigaErrore
Dim d As Date
With Me
d = .ComboBox1.Text & "/" & _
.ComboBox2.Text & "/" & _
.ComboBox3.Text & " "
End With
TextBox1.Text = d
RigaChiusura:
Exit Sub
RigaErrore:
MsgBox "La data inserita non è corretta. Controllare che i valori selezionati.", _
vbOKOnly + vbInformation, _
"Attenzione"
Resume RigaChiusura
End Sub
L'utilizzo di una variabile d di tipo Date, solleva un'eccezione(errore) gestita nel caso si cerchi di inserire nella cella attiva o nella TextBox una data non valida, ad esempio: 30/02/2010.
Vedi anche qui: UserForm: ore e minuti
Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo
forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
Ultimo aggiornamento di questa pagina: 29/11/2010 - mauro gamberini