|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 3
|
Filtrare Una Data con Vba for Excel [Vba for Excel]
Buongiorno a tutti,
![]() premetto che sono nuovo del forum e poco esperto di Vba for Excel . Il mio problema è il seguente ![]() 1) Ho un database su un file Excel (2007) 2) Alcuni campi di questo database contengono Date 3) Voglio poter filtrare un campo Data mediante una Macro Vba (ad esempio, poter filtrare tutte le date antecedenti il 30/06/2008) 4) Ho creato (con non poche difficoltà) una Macro Vba che nel momento in cui gli dico di filtrare tutte le date antecedenti il 30/06/2008 in realtà non filtra niente ![]() Ovvero filtra solo le celle che contengono il segno "/" (slash) 5) Se però vado "manualmente" sul file Excel per filtrare tali date, nel primo campo del criterio di filtro trovo effettivamente la data "30/06/2008" e il criterio che la macro imposta è di estrarre tutto ciò che è minore o uguale ("<="). Per maggiore chiarezza riporto sotto le righe della macro Vba che non mi filtrano le date '----- ANCORA DA CAPIRE COME FARE FILTRARE LA DATA ------------- Application.Goto Reference:="First_Cell_Validità_fino_al" ActiveSheet.Range("Database").AutoFilter Field:=65, _ Criteria1:="<=" & Trimestre_In_Corso, Operator:=xlAnd '----------------------------------------------------------------------------------- La variabile "Trimestre_In_Corso" l'ho definita poche righe prima così ... '--------- Identifica il Trimestre in Corso --------------------- If Numero_Trimestre = 1 Then Trimestre_In_Corso = "31/03/" & Current_Year _ Else If Numero_Trimestre = 2 Then Trimestre_In_Corso = "30/06/" & Current_Year _ Else If Numero_Trimestre = 3 Then Trimestre_In_Corso = "30/09/" & Current_Year _ Else If Numero_Trimestre = 4 Then Trimestre_In_Corso = "31/12/" & Current_Year '---------------------------------------------------------------- Per precisazione "Current_Year" è una variabile Data che mi dà l'anno corrente. Secondo Voi, come posso fare in modo che la macro restituisca la variabile "Trimestre_In_Corso" tale da diventare effettivamente un valore di filtro per le date? ... in effetti sembra che non la interpreti come una data ... Ho sicuramente mancato qualcosa ![]() Criteria1:="<=" & Trimestre_In_Corso possa funzionare da filtro. Grazie anticipatamente a chi vorrà aiutarmi ![]() Billsmith |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 3
|
Filtrare Una Data con Vba for Excel [Vba for Excel]
Scusate
sono sempre io. Ho trovato la soluzione ... un pò grazie al sito : [url="http://support.microsoft.com/kb/248670/it"] ![]() dove dice di provare il Metodo 2 sotto riportato. Io cosa ho fatto? Ho usato il comando Format(espressione[, formato[, primogiornosettimana[, primasettimanaanno]]]) in pratica ho formattato la data in formato all'inglese mm/dd/yyyy anziché all'italiana dd/mm/yyyy e tutto ora funziona!!! ![]() ![]() ----------------------------------------------------------------------------------------------------- Metodo 2: Modificare il formato di data del codice e celle di prospetto Modificare il formato delle date a un formato numerico di data personalizzata differente e modificare il valore assegnato all'argomento Criteria1 o all'argomento Criteria2 del metodo AutoFilter a corrispondere allo stesso formato numerico di data personalizzata. Attenere a questa seguente procedura a eseguire l'attività: 1. Nel prospetto, selezionare le date nell'elenco. 2. Dal menu Formato, scegliere Celle. 3. Nella scheda Numero, selezionare Personalizzato nell'elenco Categoria. 4. Digitare (ad esempio) un formato dato nuovo nella casella TipoMM/dd/yyyy) e sceglie OK. 5. Modificare il valore assegnato all'argomento Criteria1 o all'argomento Criteria2 del metodo AutoFilter a corrispondere al formato la data delle date nell'elenco di prospetto. Ad esempio, se le celle sono formattate come mm/gg/aaaa, la riga di codice è la seguente: Selection.AutoFilter Field:=1, Criteria1:="02/02/1998" ----------------------------------------------------------------------------------------------------- |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:38.