Problema acquisizione data



  • 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)