Condividi tramite

Formato data italiano/ingelse in Textbox

Anonimo
2014-03-05T17:51:58+00:00

Ciao a tutti,

ho il seguente problema: su excel 2007 in lingua italiana ho una textbox nella quale inserisco una data in formato gg/mm/aaaa collegata direttamente con ControlSource ad una cella.

Quando immetto la data nella textbox la cella si compila perfettamente e non mi da alcun tipo di problema. Vi riporto di seguito il codice:

Private Sub DataIniziale_Change()

'Controlla il corretto inserimento della data

X = Len(UserForm2.DataIniziale)

Y = LTrim(UserForm2.DataIniziale.Text)

If UserForm2.DataIniziale.Value > 0 Then UserForm2.DataIniziale.BackColor = &H80000005

If UserForm2.DataIniziale.Value = "" Then UserForm2.DataIniziale.BackColor = &H80000002

If X = 2 Then DataIniziale = Y & "/"

If X = 5 Then DataIniziale = Y & "/"

If X = 10 Then

UserForm2.DataIniziale.SetFocus

End If

If Not IsDate(DataIniziale.Value) Then UserForm2.DataIniziale.BackColor = &HFFFF&

If Not DataIniziale.Value = Format(DataIniziale.Value, "dd/mm/yyyy") Then UserForm2.DataIniziale.BackColor = &HFFFF&

End Sub

Il problema che ho è il seguente: il file deve essere utilizzato da diverse persone che potrebbero avere versioni di excel diverse e anche in lingua diversa dall'italiano.

Quando il file è aperto in un excel in inglese ad esempio il codice che ho riportato non immette nella cella il formato della in gg/mm/aaaa ma in mm/gg/aaaa.

Il formato diverso mi crea non pochi problemi in quanto rischia di fare effettuare ricerche su date diverse (es. 2/11/2013 diventa 11/2/2013).

Il problema a mio modo di vedere non sta nel codice in se per se ma nel formato in cui viene letta la data una volta riportata nella cella excel.

Avete qualche consiglio/suggerimento?

Grazie come sempre del vostro aiuto.

Generoso

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
  1. Anonimo
    2014-03-05T18:20:36+00:00

    Il problema a mio modo di vedere non sta nel codice in se per se ma nel formato in cui viene letta la data una volta riportata nella cella excel.

    Avete qualche consiglio/suggerimento?

    Grazie come sempre del vostro aiuto.

    Generoso

    Le date sono date, il testo è testo. In una TextBox abbiamo sempre e solo testo, quale sia la formattazione che tu gli dai.

    Una UserForm con una TextBox e un pulsante.

    Questo il codice del pulsante:

    Private Sub CommandButton1_Click()

        Dim d As Date

        d = CDate(Me.TextBox1.Text)

        ActiveCell.value = d

    End Sub

    Il contenuto della TextBox verrà trasformato in una DATA e passato alla variabile di tipo Date d. Questo indipendentemente dalla localizzazione dell'Excel dell'utente. Formatterai poi *la cella* in base alla rappresentazione che vuoi della data.

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-03-13T08:29:36+00:00

    Ciao Mauro,

    ho utilizzato il CDate come mi hai consigliato e ho risolto il mio problema.

    Grazie mille ancora e a presto

    Perfetto.

    Ciao e alla prossima.

    0 commenti Nessun commento
  2. Anonimo
    2014-03-13T08:12:15+00:00

    Ciao Mauro,

    ho utilizzato il CDate come mi hai consigliato e ho risolto il mio problema.

    Grazie mille ancora e a presto

    0 commenti Nessun commento