data italiana da inputbox
Hai un problema con Excel? 
data italiana da inputbox
di Luke74 data: 14/06/2017 21:43:02
Ciao a tutti,
ho inserito un pulsante che mi permette di inserire nella prima cella libera di un database semplicissimo con due colonne (data e Valuta) il valore che immetto in inputbox, ma la data si trasforma in data americana nel momento in cui passa nella cella, ad esempio scrivo 3/7/18 e lui riporta 7/3/18, come posso risolvere?
grazie a tutti
Luca
Sub pulsante()
Dim irow As Integer
irow = 2
While Cells(irow, 1).Value <> ""
irow = irow + 1
Wend
Cells(irow, 1) = InputBox("data")
Cells(irow, 2) = InputBox("valuta")
End Sub |
di Vecchio Frac data: 14/06/2017 22:37:45
Puoi risolvere con la funzione Format (o anche con FormatDateTime).
di Luke74 data: 14/06/2017 22:57:06
come si mette e dove si inserisce il format che mi suggerisci Vecchio Frac?
porta pazienza ma sono alle prime armi
grazie Luca
di Mister_x (utente non iscritto) data: 15/06/2017 00:01:24
ciao
DateValue()
Cells(irow, 1) = DateValue(InputBox("data"))
ciao
di Vecchio Frac data: 15/06/2017 09:15:42
Anche DateValue() va bene (la funzione converte una stringa nel corrispondente formato data).
Io pensavo a
Cells(iRow, 1) = formatdatetime(inputbox("data"), vbshortdate)
(ho verificato che Format in effetti si comporta male)
A differenza di FormatDateTime tuttavia la funzione DateValue si ferma con errore se immetti un valore numerico non riconoscibile come data. Prova in entrambi i casi a passare all'inputbox il valore 42901 e vedi cosa succede.
di Luke74 data: 15/06/2017 16:04:13
Ho provato così come suggerito da Vecchio Frac, ma mi inserisce ancora la data americana, in pratica scrivo 3/7/18 e lui la tramuta in 3/7/18 dove sbaglio?
ho controllato la colonna dove si scrive la data ed è formattata come data italiana
mah!!!
Sub pulsante()
Dim irow As Integer
irow = 2
While Cells(irow, 1).Value <> ""
irow = irow + 1
Wend
Cells(irow, 1) = FormatDateTime(InputBox("data"), vbShortDate)
Cells(irow, 2) = InputBox("valuta")
End Sub
|
di Vecchio Frac data: 15/06/2017 16:37:58
Non sbagli... è la localizzazione a dare risultati strani.
Prova come diceva Mister_x ma attento a non immettere una data non valida.
Sub pulsante()
Dim irow As Integer
irow = 2
While Cells(irow, 1).Value <> ""
irow = irow + 1
Wend
Cells(irow, 1) = DateValue(InputBox("data"))
Cells(irow, 2) = InputBox("valuta")
End Sub |
di Vecchio Frac data: 15/06/2017 16:41:59
Oppure:
Sub pulsante()
Dim irow As Integer, d As Date
irow = 2
While Cells(irow, 1).Value <> ""
irow = irow + 1
Wend
Cells(irow, 1) = CDate(InputBox("data"))
Cells(irow, 2) = InputBox("valuta")
End Sub |
di Luke74 data: 15/06/2017 18:28:17
Funzionano alla perfezione entrambe, grazie mille Vecchio Frac e Mister X
Vuoi Approfondire?