Condividi:        

[excel] controllare formato data valido

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[excel] controllare formato data valido

Postdi anug_un_rama » 16/04/09 21:09

ciao a tutti, come posso fare una routine che mi verifichi la correttezza del formato della data immessa?
cioè
vorrei che se l'utente mette la data come ad es 121209 invece che 12/12/09 appaia una msgbox che dica ad es immettere separatori in quanto se lascio il numero 121209 appare ovviamente il corrispondente del formato microsoft (mi sa una data del 1931 ndr :) )
grazie a tutti
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Sponsor
 

Re: [excel] controllare formato data valido

Postdi pietrol » 16/04/09 22:12

Ciao anug_un_rama
come prima soluzione proporrei di utlizzare la funzione di convalida della cella:
seleziona la cella, menu Dati/Convalida, nella scheda "Impostazione" su "Consenti" scegli "Data" e nella scheda "Messaggio di errore" inserisci qualcosa come "Inserire una data valida nel formato gg/mm/aa!", lascia lo Stile su Interruzione, OK.
Prova ad inserire una data non valida e vedi cosa succede.

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: [excel] controllare formato data valido

Postdi anug_un_rama » 17/04/09 12:03

pietrol ha scritto:Ciao anug_un_rama
come prima soluzione proporrei di utlizzare la funzione di convalida della cella:
seleziona la cella, menu Dati/Convalida, nella scheda "Impostazione" su "Consenti" scegli "Data" e nella scheda "Messaggio di errore" inserisci qualcosa come "Inserire una data valida nel formato gg/mm/aa!", lascia lo Stile su Interruzione, OK.
Prova ad inserire una data non valida e vedi cosa succede.

ciao
pietrol

grazie, anche se a me serve il codice vba e la devo applicare all'avento change di una textbox.. ora provo a vedere se funzia, altrimenti altre idee?
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] controllare formato data valido

Postdi anug_un_rama » 17/04/09 12:17

edit: quando vado su convalida, mi chiede di inserire per forza una data di inizio ed una di fine
ho risolto facendo un controllo sulla stringa (semplice no^^)

praticamente se il terzo carattere è diverso da / o - allora esce la finestrella!

grazie cmq pietrol
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] controllare formato data valido

Postdi pietrol » 17/04/09 12:27

Ciao anug_un_rama
non avevo capito che era per VBA, in questo caso:
Codice: Seleziona tutto
    If Not IsDate(TextBox1.Value) Then
           'qui il codice
    End If

Anche perchè la tua verifica potrebbe fallire se introducessero per esempio 01/0109 senza la seconda barra.
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: [excel] controllare formato data valido

Postdi pietrol » 17/04/09 13:09

Ciao anug_un_rama
correggo quanto scritto prima, il codice dovrebbe essere
Codice: Seleziona tutto
Private Sub TextBox1_LostFocus()
    If Not IsDate(TextBox1.Value) Then
                MsgBox "Inserire una data valida in formato gg/mm/aa1"
                TextBox1.Activate      'torna al textbox
    End If
End Sub

e come vedi non nell'evento Change ma in quello LostFocus

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: [excel] controllare formato data valido

Postdi anug_un_rama » 17/04/09 13:57

pietrol ha scritto:Ciao anug_un_rama
correggo quanto scritto prima, il codice dovrebbe essere
Codice: Seleziona tutto
Private Sub TextBox1_LostFocus()
    If Not IsDate(TextBox1.Value) Then
                MsgBox "Inserire una data valida in formato gg/mm/aa1"
                TextBox1.Activate      'torna al textbox
    End If
End Sub

e come vedi non nell'evento Change ma in quello LostFocus

ciao
pietrol

grazie mille!!!
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] controllare formato data valido

Postdi Anthony47 » 17/04/09 15:19

Humm TextBox1_LostFocus....
Nel caso che non funzioni:
Codice: Seleziona tutto
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then
 MsgBox ("Errore, data non valida: " & TextBox1.Value)
 TextBox1.Text = ""
 Cancel = True
End If
End Sub

o una delle varianti simili.
Opzionalmente puoi usare, in aggiunta o in sostituzione:
Codice: Seleziona tutto
Private Sub TextBox1_Change()
'Controls("TextBox2").Enabled = False     '<<< NOTA **
If IsDate(TextBox1.Value) Then
 TextBox1.BackColor = RGB(0, 250, 0)
' TextBox2.Text = Format(TextBox1.Text, "yyyy-mmm-dd")
 Else: TextBox1.BackColor = RGB(250, 0, 0)
' TextBox2.Text = "Data non valida"
End If
End Sub

Questa colora in verde o rosso Textbox1 se la data e' valida o meno; scommentando le tre istruzioni potresti anche vedere in TextBox2 (che deve esistere..) a quale data l' input corrisponde.
**Usando TextBox2 l' istruzione marcata <<< e' meglio se la metti nel codice di attivazione della userform.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel] controllare formato data valido

Postdi pietrol » 17/04/09 18:26

Ciao Anthony
il mio codice si riferiva ad un text box inserito direttamente nel foglio, non su un form, solo adesso mi sono accorto che i due casi non si equivalgono.

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34


Torna a Applicazioni Office Windows


Topic correlati a "[excel] controllare formato data valido":


Chi c’è in linea

Visitano il forum: systemcrack e 55 ospiti