Formato data excel



  • Formato data excel
    di Enzo (utente non iscritto) data: 14/09/2010

    Ciao a tutti volevo sottoporvi un quesito
    come si puo' fare per far si che scrivendo una data in una cella
    ossia 01032010 lui mi restituisca nella cella
    01/03/2010
    ho provato a formattare la cella in tutti i modi ho provato di tutto
    ma mi restituisce sempre una serie di ################
    premetto che ci sono riuscito appoggiandomi alle celle adiacenti con
    una funzione ma volevo sapere se c'e' un modo che me la faccia
    apparire dopo aver scitto nella cella
    avevo pensato ad una funzione personalizzata nel foglio che mi possa
    far questo ma non so da dove iniziare
    grazie per l'eventuale aiuto




  • di Ricky53 (utente non iscritto) data: 14/09/2010

    Ciao,
    premesso che utilizzando il "tastierino numerico" inserisci velocemente una data, in più se l'anno è l'anno corrente ti basta scrivere giorno e mese (ovviamente separati da "/" o "-")
    gli zeri iniziali non vanno scritti quindi ... valuta tu.

    comunque penso che una "udf" possa essere scritta, non mi ci sono mai dedicato visto il solito concetto "costi/benefici" però ...
    si potrebbe partire al variare del contenuto di una cella attivare questa "udf" che prende il dato inserito e lo trasforma in data mediante la funzione "mid" che spezza il dato un gg mm aaaa
    ma devi fare anche il controllo di quanto inserito il consiglio è quello di scrivere sempre otto caratteri (zeri compresi) ... vedi che stiamo complicando la vita e poi sempre otto caratteri nell'altro modo spesso nono di meno 8vedi il discorso dell'anno di prima)


    considerazione finale:
    ma è proprio così difficile scrivere una data come ti ho scritto ???
    sei tu il pigro o lo sono i tuoi utenti ???

    ciao da ricky53



  • di Enzo (utente non iscritto) data: 15/09/2010

    Ciao ricki il problema e' che non e' un fatto di pigrizia ma gia' utilizzo excel in appoggio a dati estrapolati da altri programmi che poi devono essere elaborati da altri e quindi gia' ci sono molti passaggi intermedi
    con una funzione apposita riesco ad avere il risultato chiesto (mi appoggio ad un altra colonna)
    volevo vedere se si poteva evitare proprio quest'ultima cosa
    ciao



  • di Locate (utente non iscritto) data: 15/09/2010

    Ciao enzo
    intanto saluto richi,
    ti passo una macro,trovata in un forum e modificata al tuo scopo in alcune parti fa, che come descritto dal tuo ultimo post ti appoggi ad unaltra colonna
    questa come esempio fa al caso tuo basta che la colonna dove inserisci i dati sia formattata a testo, in questo caso e' la "a" e scrive la data in "b",
    come vedrai se inserisci dati anomali e non coerenti a date questi si allineano a sinistra come se fosse testo vedi ess.
    01032010 01/03/2010
    03022011 03/02/2011
    21122009 21/12/2009
    25042119 25/04/2119
    31128000 31/12/8000
    01011900 01/01/1900
    03542012 03/54/2012
    ciao da locate
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim rCell As Range
    Dim valore
    Set rng = Intersect(Me.Columns("A"), Target) '<<==("A")da cambiare secondo tue esigenze'
    If Not rng Is Nothing Then
    For Each rCell In rng.Cells
    With rCell
    If Not IsEmpty(.Value) Then
    valore = Target.Value
    .Offset(0, 1).Value = Format(Left(valore, 2) & "/" & Mid(valore, 3, 2) & "/" & Right(valore, 4), "mm/dd/yyyy")
    Else
    .Offset(0, 1).Value = vbNullString
    End If
    End With
    Next rCell
    End If
    End Sub



  • di Ricky53 (utente non iscritto) data: 16/09/2010

    Ciao,
    ma la tua esigenza è solo quella di trasformare quanto scritto (otto numeri) in una data?
    la proposta di locate (un caro saluto) va bene ma ha dei vincoli:
    qualunque osa tu scriva cercherà di trasformarla in una data.

    si potrebbero inserire anche dei controlli su quanto digitato:
    1. lunghezza dati inseriti "8" caratteri
    2. controllo sulla numericità di quanto inserito
    3. controllo sostanziale su quanto scritto: primi due numeri da 01 a 31, secondi due numeri da 01 a 12, ultimi quattro > 1900
    4. gestione mesi da 30 giorni e di febbraio con i bisestili
    5. altri evenutali controlli

    ciaoda ricky53




  • di Enzo (utente non iscritto) data: 16/09/2010

    Un saluto a locate e a ricky che saluto
    rispondendo a tutti e due, appoggiandomi ad un altra colonna riesco ad ottenere quello che voglio
    il quesito era se era fattibile poterlo ottenere dopo aver inserito nella stessa casella un numero che puo' essere lungo sette caratteri (1032010) o otto (10032010) e mi venga restituita nella casella il numero sotto forma di data gg/mm/aaaa