[POSTQUOTE][QUOTE:76058945=APOBEN64, 16/12/2007 18:20]Questa semplice routine, ci può aiutare quando abbiamo da ricercare dei valori in base ad un intervallo di date .
Ecco il codice, che come potete notare può essere usato anche per altre tipo di ricerche che magari non riguardano le date.
[TESTO]Sub RicercaData()
' La routine cerca sulla base di due Date selezionate un intervallo e poi incolla i valori iniziando dalla Colonna scelta , nell'esempio la C
Dim uno ' anche se non obbligatorio è meglio sempre di dichiarare le variabili, che in questo caso è di tipo variant
Dim due
Dim CL As Object ' anche qui dichiaramo la varibiale come di tipo oggetto per essere meglio indetificata nel ciclo di ricerca
uno = InputBox("INSERISCI LA PRIMA DATA DI RICERCA")
If uno = "" Then Exit Sub ' se non c'è alcun valore allora esci
due = InputBox("INSERISCI LA SECONDA DATA DI RICERCA")
tre = Format(uno, "dd/mm/yy") 'imposta il formato data
quattro = Format(due, "dd/mm/yy")
Set rng = Sheets("Foglio1").Range(("A1"), Range("A1").End(xlDown)) ' prendi l'intervallo da A1 , fino all'ultima cella con valore
For Each CL In rng 'inizia il ciclo di ricerca
If CL >= CDate(tre) And CL <= CDate(quattro) Then ' se trovi un valore all'intervallo delle date
riga = Range("C65536").End(xlUp).Row + 1 'allora seleziona la prima riga +1 libera della colonna C e incollaci i valori
' la sintassi seguente ci dice che se il CL in questo caso la data è compresa nell'intervallo, allora seleziona la riga
'attiva della variabile "riga" e seleziona la colonna 3 che corrisponde alla C e incolla la data presente in A,
'continua e seleziona la colonna 4 ( la D) e incolla il valore corrispondente nella colonna B
'ovviamente si può continuare a selezionare altri valori che possono essere presenti nella riga ....
Cells(riga, 3) = CL.Value ' valore data presente nella colonna A
Cells(riga, 4) = CL.Offset(0, 1) ' valore corrispondente alla data nella colonna B, mettila in D (riga,colonna)
End If
Next CL
Set uno = Nothing ' scarica la variabile in modo tale da non avere in memoria dei valori per una nuova ricerca
Set due = Nothing
Set tre = Nothing
Set quattro = Nothing
End Sub[/TESTO]
Allego anche il file di esempio.
Luca
[/QUOTE][/POSTQUOTE]
Questo è proprio quello che mi serviva, gentilmente mi dite come posso cambiare le colonne di ricerca e di destinazione?c'ho provato a guardare ma non ci sono riuscito