Problema data



  • Problema data
    di Marco (utente non iscritto) data: 12/01/2017 16:13:03

    Sera a tutti,
    vi contatto in quanto ho un problema in Excel durante l'esecuzione di una macro. Vi sintetizzo il problema.
    Praticamente ho una cella nel quale vi è riportata la data nel formato gg.mm.aa
    ora dato che Excel, a causa dei punti, non la riconosce come data ho pensato di registrare una macro che seleziona la cella del foglio dove è inserita la data (B2) e con la funzione trova e sostituisci vado a sostituire i "." della cella con degli "/" e in questo modo il sistema mi legge correttamente la data (ad esempio 09.01.17 la converte in 09/01/17).
    Questo funziona bene se vado manualmente, ma nel momento in cui eseguo la macro mi inverte il giorno con il mese ed esce ("01/09/17").
    Ho notato che questo problema (che salta fuori solo se eseguo la macro mentre se lo faccio manualmente no) si presenta sempre se il giorno è compreso tra 1 e 12, dal giorno 13 anche la macro gira bene. Avete soluzioni?
    Nel frattempo vi posto la macro che è uscita fuori registrando.

     
    Range("B2").Select
        
        ActiveCell.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False



  • di Marius44 data: 12/01/2017 19:43:32

    Ciao Marco
    Fai una prova con la macro che ti segnalo sotto.

    Fai sapere. Ciao,
    Mario
     
    Sub cambiadata()
        dt = Range("B2").Value
        gg = Left(dt, 2): mm = Mid(dt, 4, 2): aa = Right(dt, 2)
        dt = mm & "/" & gg & "/" & aa
        Range("B2") = Format(dt, "dd/mm/yy")
    End Sub



  • di Mister_x (utente non iscritto) data: 12/01/2017 23:55:00

    ciao marco

    intanto ne approfitto per salutare Mario

    possiamo utilizzare anche un'altra formula di cambio con la funzione DateValue() e Replace() di VBA

    ciao
     
    Sub DataValore()
    Dim Dv As String
    Dv = Range("B2").Value
    Range("B2") = DateValue(Replace(Dv, ".", "/"))
    End Sub
    






  • di Marius44 data: 13/01/2017 01:59:14

    Ciao Mister_x
    da quanto tempo non ci si sente.

    Ovviamente la tua macro è molto più professionale della mia (e su questo non c'erano dubbi) ma mi chiedevo
    come mai non sia possibile inserire la formattazione-data anche nella prima macro (quella di Marco) cioè, voglio dire, mettere alla fine invece di
    ReplaceFormat:=False
    qualcosa come (ovviamente è solo un banale esempio)
    ReplaceFormat:=True e poi Format(Activecell, "dd/mm/yy")

    Scusa l'obbrobrio che ho scritto.
    Nell'attesa di avere la risposta da Marco approfitto per fare due cose:
    - carpirti qualche ... segreto
    - salutarti molto affettuosamente
    Ciao,
    Mario



  • di Marco (utente non iscritto) data: 13/01/2017 09:35:07

    Buongiorno Raga,
    le Macro girano bene entrambe. Gentilissimi e competenti come sempre :)