confrontare date formato diverso



  • confrontare date formato diverso
    di vanvitelli data: 08/01/2016 10:23:44

    salve a tutti ho una tabella con una colonna di 422 righe con il seguente formato "Sat. 9 Jan." Oppure "Sun. 10 Jan."
    cerco nella prima colonna una cella che corrisponda alla data odierna , ovviamente la mia data è italiana, ma non me la trova, veramente non mi riconosce neanche che quella è una data.
    Senza fare un trova e sostituisci su tutto il foglio c'è un metodo elegante per fare il confronto tra la data della colonna e la data odierna?

     
    sub cerca_data_odierna ()
    dim i as integer
    for i = 1 to 422
    if cells(i,1) = date then msgbox("la data odierna è alla riga : "& i)
    next
    end sub



  • di Luca73 data: 08/01/2016 10:26:59

    Allega il File per favore
    almeno la parte con la data odierna e le date di confronto. Ciao
    Luca





  • di Mister_x (utente non iscritto) data: 08/01/2016 13:06:56

    ciao

    per mio conto non ti corrisponde l'anno , le date che tu hai sono a 2015 o inferiore
    prova a confrontare con la sub modificata che cerca solo il mese e il giorno
    la tua funziona se l'anno corrisponde fatto con le mie prove

    mer. 06 gen.
    gio. 07 gen.
    ven. 08 gen.
    sab. 09 gen.
    dom. 10 gen.
    lun. 11 gen.

    ciao
     
    Sub cerca_data_odierna()
    Dim i As Long
    For i = 1 To 422
    If Day(Cells(i, 1)) = Day(Date) And Month(Cells(i, 1)) = Month(Date) Then
      MsgBox ("la data odierna è alla riga : " & i)
      Exit Sub
    End If
    Next
    End Sub






  • di vanvitelli data: 08/01/2016 14:16:51

    mister_x ho provato la tua macro ma non va. le date sono in inglese e puntate

    ho allegato il file



  • di Mister_x (utente non iscritto) data: 08/01/2016 15:17:45

    ciao


    quelle che tu vedi non sono date ma bensi stringhe di testo
    il problema nostro e' che abbiamo excel in italiano altrimenti se lo avessimo in inglese la cosa sarebbe
    stata molto semplice da risolvere vedi sub sotto con funzione format(), ma riporta le scritte in italiano
    sab. 9 gen.
    dom. 10 gen.

    in questo caso bisogna scrivere due funzioni di conversione testo 1 per i giorni settimana e 1 per i mesi


    ciao
     
    Option Explicit
    Option Compare Text
    Sub cerca_data_odierna()
    Dim i As Integer
    For i = 1 To 422
    [e1] = Format(Date + 2, "ddd. d mmm.")
    If Cells(i, 1) = Format(Date, "ddd. d mmm.") Then MsgBox ("la data odierna è alla riga : " & i)
    Next
    End Sub
    






  • di vanvitelli data: 08/01/2016 16:59:43

    non la trova



  • di vanvitelli data: 08/01/2016 17:13:59

    se lo riconosce come testo allora la rata non la troverà mai.
    Ma se sostituisco tutto sostituendo "sat." con "sab" "sun." con "dom" "jan." con "gen" neanche trova la cella della data odierna



  • di Mister_x (utente non iscritto) data: 09/01/2016 10:10:50

    ciao

    quando si importa nelle celle viene inserito di tutto e di piu'
    nel tuo caso sono anche degli spazi vuoti dopo la stringa che tu vedi quindi la sub() deve
    fare conto anche di questi, vedi sotto


    allego il tuo file modificato di prova

    ciao
     
    Option Explicit
    Option Compare Text
    Sub cerca_data_odierna()
    Dim i As Long
    For i = 1 To 422
      If Trim(Cells(i, 1)) = Format(Date, "ddd. d mmm.") Then MsgBox ("la data odierna è alla riga : " & i)
    Next
    End Sub