Condividi:        

macro per filtrare con valori prese da caselle

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro per filtrare con valori prese da caselle

Postdi nemoclipru » 20/10/16 17:15

Salve ragazzi, ho bisogno di un aiuto con una macro (ambito in cui sono abbastanza impedito).
Ho un database numerico di 150.000 righe X 10 colonne.
Vorrei fare una semplice macro che mi filtri la visione del database secondo dei valori immessi in delle celle a parte.

Database compreso in $A$1:$J$150000
vorrei filtrare il database secondo le seguenti indicazioni:
- colonna G compresa tra valore di $M$1 e valore di $N$1
AND
- colonna H compresa tra valore di $M$2 e valore di $N$2
AND
- colonna I uguale al valore di $M$3

una volta immessi i valori di filtro nelle caselle $M$1, $N$1, $M$2, $N$2, $M$3, vorrei poter premere il pulsante della macro che mi filtra in automatico il database (senza dover settare manualmente i filtri ogni volta).

Qualcuno che mi aiuti nella compilazione della macro?? non credo sia troppo difficile ma a smanettare con i codici non saprei da dove partire....ho provato a registrare una macro ma non ho ottenuto nulla di ciò che vorrei :undecided:
Grazie infinite
nemoclipru
Newbie
 
Post: 8
Iscritto il: 30/09/16 21:43

Sponsor
 

Re: macro per filtrare con valori prese da caselle

Postdi nemoclipru » 20/10/16 19:38

ho provato ad inserire questo codice nella macro. vedo che mi inserisce i valori delle celle M1 ed N1 nei campi di range del filtro, ma mi filtra l'intero database a 0 righe (come se nessuna riga fosse compresa tra i due valori, cosa che non è vero). dove ho sbagliato??

Sub filtro1()
Dim crit1 As String
Dim crit2 As String
crit1 = ">" & Range("M1")
crit2 = "<" & Range("N1")
ActiveSheet.Range("$A$1:$J$150000").AutoFilter Field:=8, Criteria1:=crit2, Operator:=xlAnd, Criteria2:=crit1
End Sub
nemoclipru
Newbie
 
Post: 8
Iscritto il: 30/09/16 21:43

Re: macro per filtrare con valori prese da caselle

Postdi Anthony47 » 21/10/16 00:54

Una incongruenza che non so valutare: dici che M1/N1 sono le soglie per la colonna G, ma poi il filtro lo applichi alla colonna H.
Il codice che dovrebbe fare quello che chiedi e'
Codice: Seleziona tutto
Sub filtra()
    ActiveSheet.Range("$A$1:$J$150000").AutoFilter Field:=7, Criteria1:=(">=" & Range("M1").Value), _
        Operator:=xlAnd, Criteria2:="<=" & Range("N1").Value
    ActiveSheet.Range("$A$1:$J$150000").AutoFilter Field:=8, Criteria1:=">=" & Range("M2"), _
        Operator:=xlAnd, Criteria2:="<=" & Range("N2")
    ActiveSheet.Range("$A$1:$J$150000").AutoFilter Field:=9, Criteria1:="=" & Range("M3")
End Sub

Potrebbero esserci pero' delle situazioni da gestire se i dati non fossero semplici numeri, ma ad esempio date o stringhe.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19475
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per filtrare con valori prese da caselle

Postdi nemoclipru » 21/10/16 11:01

Grazie Anthony per la risposta. Forse ho fatto confusione con alcune caselle, comunque ti invio un file ridotto di quello che intendo, con la macro FILTRA adattata secondo il tuo codice con alcune variazioni

https://www.dropbox.com/s/etq02kme38n3l ... .xlsm?dl=0

il problema è che:
- i filtri per numeri "uguale a..." mi funzionano (vedi colonna gialla del file)
- i filtri per testo "uguale a..." mi funzionano (vedi colonna arancione del file)
- invece i filtri per numeri "maggiore di..." AND "minore di..." NON MI FUNZIONANO (vedi colonne azzurra e verde del file), mi ritornano colonne vuole come se non esistesse il range (cosa che invece esiste eccome!)

che poi non capisco una cosa: perchè in tutte e 4 le colonne colorate filtrate mi compare sempre la scritta "filtro testo" una volta filtrate, quando solo 1 su 4 è un filtro testo e le altre 3 sono filtri numeri?
Non è che il problema sia un'incongruenza di numero/testo dei dati delle colonne della tabella??
boh....mi sto scervellando da 3 giorni su questa cosa che mi blocca l'intero lavoro....
nemoclipru
Newbie
 
Post: 8
Iscritto il: 30/09/16 21:43

Re: macro per filtrare con valori prese da caselle

Postdi nemoclipru » 21/10/16 13:28

RISOLTO: Il vba vuole il punto come separatore decimale, non la virgola, quindi tutti i range di filtro "da...a..." devono essere segnati con il punto.
nemoclipru
Newbie
 
Post: 8
Iscritto il: 30/09/16 21:43


Torna a Applicazioni Office Windows


Topic correlati a "macro per filtrare con valori prese da caselle":


Chi c’è in linea

Visitano il forum: Nessuno e 103 ospiti