Problema acquisizione data
Hai un problema con Excel? 
Problema acquisizione data
di Alexander84 (utente non iscritto) data: 03/05/2013 10:25:46
Ragazzi, ho un problema nell'acquisizione della data da una textbox.
Se scrivo 02/04/13 nella cella dopo l'acquisizione, mi ritrovo 04/02/13, cioè giorno e mese invertiti!
Mi sembra succeda solo con Aprile!
A qualcuno é mai successo?
Grazie.
di Baz data: 03/05/2013 12:10:54
Ciao,
sarebbe da capire la formattazione della cella da dove la textbox preleva i dati ed il codice con il quale leggi il dato
di totygno71 data: 03/05/2013 20:27:21
Alex
hai provato a formattare il valore della SEXBOX in formato dd/mm/aa???
di Vecchio Frac data: 03/05/2013 21:15:51
Io ho provato in molti modi, ma non succede.
Per esempio, formattando la cella collegata A1 come "mm gg aa" e immettendo "05/04/2013" mi compare "04 05 13". Avviando l'userform tuttavia la textbox collegata ad A1 riporta correttamente "05/04/2013".
Ergo, fai vedere il file incriminato :)
di Alexander84 (utente non iscritto) data: 08/05/2013 19:37:24
Finalmente ho qualche minuto per poter portare avanti la discussione.
Dunque, il campo nel foglio excel è formattato in questo modo gg-mese-aa, ma anche cambiando, mi inverte comunque giorno e mese.
Il file con il quale avviene l'acquisizione è in allegato.
Grazie a chiunque vorrà darmi una mano.
di Vecchio Frac data: 08/05/2013 19:53:08
Nel frattanto ti faccio notare che è *sbagliata* l'istruzione che controlla se tutti i campi obbligatori sono compilati (parlo dell'userform1 e il codice si trova nel pulsante Ok t-(:
If Datasituaz.Value & Dataprod.Value & Modello.Value & ordine.Value & provenienza.Value & anomalia1.Text & anomalia2.Text & anomalia3.Text & anomalia4.Text = "" Then
Con questo codice colleghi il contenuto di tutti i campi di testo in una sola stringa e valuti se essa è diversa da una stringa vuota. Ma basta che ci sia solo uno dei campi compilati, o anche solo uno spazio dentro uno di essi, per invalidare il controllo (tu infatti vuoi che tutit i campi siano compilati).
Quindi non ti resta altro da fare che replicare il confronto di ogni campo con una stringa vuota:
If Datasituaz.Value = "" or Dataprod.Value = "" or Modello.Value = "" or ordine.Value ="" or provenienza.Value = "" and anomalia1.Text ="" anomalia2.Text ="" or anomalia3.Text = "" or anomalia4.Text = "" Then
Per essere esatti, dovresti controllare che ogni singolo campo, depurato degli spazi iniziale e finale, sia una stringa vuota:
If trim(Datasituaz.Value) = "" eccetera or trim(anomalia4.Text) = "" Then
di Vecchio Frac data: 08/05/2013 19:58:40
Per tornare al tuo problema, io ho risolto così, anche se il comportamento è curioso (non è che dipende dalle impostazioni internazionali?).
Sempre nello stesso evento Ok_Click, cambia la riga
ActiveCell.Value = Datasituaz.Text
e forza la conversione della textbox in una data, quindi falla diventare così:
ActiveCell.Value = CDate(Datasituaz.Text)
Vuoi Approfondire?