confrontare date formato diverso
Hai un problema con Excel? 
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
|
Vuoi Approfondire?