Buongiorno
Ho incontrato difficoltà nel ricercare una data in un elenco di date.
L'elenco delle date è visualizzato come gg/mm/aaaa nel foglio excel. La variabile dove metto la data da cercare è definita come "date" ; per provare la routine, vi copio una delle date dell'elenco del foglio (poi otterrò la data nello stesso formato dinamicamente...
A questo punto per la ricerca uso questo:
With intervallo Set y = .Find(What:=rifData, LookIn:=xlValues, LookAt:=xlWhole) If Not y Is Nothing Then inizioRep.Offset(repPos, 2).Value = y.Address inizioRep.Offset(repPos, 2).Interior.Color = vbGreen Else inizioRep.Offset(repPos, 2).Value = "N/D" End If End With
dove intervallo definisce il range dove stanno le date, e rifdata contiene una delle date come dicevo sopra.
Succede che spesso la data cercata non risulta presente anche se ottenuta dall'elenco..
Ho quindi provato con un elenco dove la data è visualizzata come numero e uso sempre una delle celle da un elenco che ha un elenco di date nello stesso formato.. Uso lo stesso metodo di cui sopra (ovviamente usando intervallo che si riferisce al range di date nel formato numero e numData dove la data è in formato numerico.
Tutto viene localizzato perfettamente.
Ho visto che nel foglio excel la funzione CONFRONTA.X(elemDaTrovare, elencoDoveCercare,modo) usando le celle visualizzate come gg/mm/aaaa funziona perfettamente ed ho provato ad usare questa con VBA in questo modo
var = Application.Match(numData, intervallo, 0) dove var è una variabile long.
Anche in questo caso se uso Match con i valori numerici trovo la posizione perfettamente, ma se passo a gg/mm/aaaa ancora non ottengo la posizione...
Penso di superare il problema usando i valori numerici e aggiungendo qualche riga di codice per lasciare che i dati siano visibili come gg/mm/aaaa per ragioni pratiche, ma sarei curioso di sapere se mi sfugge qualcosa perchè non sono riuscito a trovare evidenza di limitazioni nell'uso di FIND con i formati di data o specifiche come debba essere usato. Stesso discorso per Match...
Grazie per suggerimenti.
gianniC
Se serve posso allegare un foglio con il vba che uso.