Ciao Andrea,
ho provato come dici tu ma non funziona, mi dice sempre che la data è superiore ad oggi.
Ma ti spiego meglio cosa accade perchè credo che dipenda dal formato della mia data.
Io ho 3 combobox con le quali inserisco il gg (da 1 a 31) il mm (da 1 a 12) e l'aaaa (da 2011 a 2012).
Poi compongo la data in un campo data = cbgg & "/" & cbmm & "/" & cbaaaa ma
If data > Date Then
' la data immessa è futura'
mi dice che la data è sempre superiore ad oggi anche se non è vero.
...
Ciao Patrizio,
lo supponevo che trattassi le date come testo, ma questa non è di sicuro la scelta migliore per eseguire confronti o operazioni sulle stesse. Molto meglio utilizzare una variabile data da formattarsi a necessità in formato 'human readable' nelle TextBox,
quindi, ecco due alternative (per i dettagli leggi l'help delle funzioni) per restituire una variabile data, da utilizzarsi per il confronto come ti avevo già indicato:
Dim dtDataCorrente As Date
dtDataCorrente = DateValue("29 giugno 2013")
dtDataCorrente = DateSerial(anno, mese, giorno)
L'operazione inversa, da variabile data a data testo, la puoi ottenere con:
Dim strDataCorrente As String
strDataCorrente = Format(dtDataCorrente, "dd/mm/yyyy")
...
Approfitto della tua gentilezza per farti un'altra domanda.
Dal menù Strumenti - Protezione, ho protetto il foglio di lavoro nel quale devo scrivere i dati con una psw e lo lascio comunque visibile.
Nel codice VBA, quando vado a scrivere faccio
ActiveSheet Unprotect
istruzioni per scrivere...
ActiveSheet.Protect
ActiveWorkbook.Save
ma mi chiede la psw per scrivere.
Dove sbaglio?
Grazie
Se hai protetto il foglio con una password, dovrai fornire la medesima password per proteggerlo, quindi:
ActiveSheet.Protect Password:="pwd"
qui il tuo codice
ActiveSheet.Unprotect Password:="pwd"
Ciao,
Andrea.