Condividi:        

FILTRO AUTOMATICO IN EXCEL

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

FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 28/09/10 16:04

Ciao,

sono un po' arrugginita...... sto usando questo codice per trovare una parola (che digito in F1) nella colonna F (...codice gentilmente suggeritomi da voi a suo tempo....)

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
CChiave = "$F$1" '<<<<<< Cella in cui digiti la chiave di filtro
Colonna = "F:F" '<<<<<< Colonna da filtrare
'
If Target.Address <> CChiave Then GoTo Esci
Chiave = "=*" & Range(CChiave).Value & "*"
Range(Colonna).AutoFilter Field:=1, Criteria1:=Chiave, Operator:=xlAnd
Esci:
Application.EnableEvents = True
End Sub

Ora ho bisogno di ricercare parole anche nelle colonne G, H e I dello stesso foglio, possibilmente tenendo la cella per la parola chiave nella relativa cella 1 di ogni colonna. Come devo cambiare il mio codice, considerato che non ho necessità di filtrare le colonne contemporaneamente? Grazie mille :)
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Sponsor
 

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Anthony47 » 01/10/10 13:12

Prova con questo codice, in sostituzione del precednte:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
CChiave = "$F$1" '<<<<<< Cella in cui digiti la chiave di filtro
GChiave="$G$1
HChiave="$H$1"
Colonna = "F:H" '<<<<<< Colonna da filtrare
'
If Target.Address <> CChiave and Target.Address <> GChiave and Target.Address <> HChiave Then GoTo Esci
Chiave = "=*" & Range(CChiave).Value & "*"
Range(Colonna).AutoFilter Field:=1, Criteria1:=Range(GChiave).Value, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=1, Criteria2:=Chiave, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=1, Criteria3:=Range(HChiave).value, Operator:=xlAnd
Esci:
Application.EnableEvents = True
End Sub

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

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 04/10/10 12:10

Anthony, si arrabbia sul Criteria3 Errore di compilazione impossibile trovare argomento predefinito

:neutral:
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Anthony47 » 04/10/10 15:05

E ci credo che si arrabbia, e' sbagliata la macro; ma chi te l' ha suggerita? :D :D
Errata
Range(Colonna).AutoFilter Field:=1, Criteria1:=Range(GChiave).Value, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=1, Criteria2:=Chiave, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=1, Criteria3:=Range(HChiave).value, Operator:=xlAnd
Corrige:
Codice: Seleziona tutto
Range(Colonna).AutoFilter Field:=1, Criteria1:=Range(GChiave).Value, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=2, Criteria1:=Chiave, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=3, Criteria1:=Range(HChiave).value, Operator:=xlAnd

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

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 04/10/10 17:09

Anthony, così mi si è ammucchiato tutto il file, si è compresso tutto, anche le righe vuote, non si vede nulla, l'errore è runtime 1004. Ho copiato per benino ma per sicurezza l'ho rifatto più volte; che ho fatto? :roll:
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Anthony47 » 05/10/10 00:08

Mi accorgo di un ulteriore errore nella sequenza che ti ho dato: nelle tre righe
Range(Colonna).AutoFilter Field:=NUMERO etc etc
la sequenza che ti ho dato e' 1 (col F filtrata con GChiave), 2 (col G filtrata con Chiave, calcolata su col F) e 3 (col H filtrata con HChiave); e' evidente invece che la sequenza deve essere:
Codice: Seleziona tutto
Range(Colonna).AutoFilter Field:=1, Criteria1:=Chiave, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=2, Criteria1:=Range(GChiave).Value, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=3, Criteria1:=Range(HChiave).value, Operator:=xlAnd

La macro filtra sulla base del contenuto di F1, G1, H1; per col F usa "comincia con Valore in F1", mentre per col G e H usa "esattamente il valore in G1 o H1".
Per armonizzare potresti trasformare tutto in "comincia con ...", usando le seguenti istruzioni:
Codice: Seleziona tutto
Range(Colonna).AutoFilter Field:=1, Criteria1:=Chiave, Operator:=xlAnd
Range(Colonna).AutoFilter Field:=2, Criteria1:=Range(GChiave).Value & "*", Operator:=xlAnd
Range(Colonna).AutoFilter Field:=3, Criteria1:=Range(HChiave).value & "*", Operator:=xlAnd

In questo modo una cella vuota (F1:H1) assume il significato di "qualsasi valore", che e' anche piu' logico.

Che sia la volta buona?
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 17/10/10 16:18

:(
...no...
non si muove nulla. Sicuramente sono io che sto facendo qualcosa di strano: come faccio ad azzerare tutto?
:(
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Flash30005 » 17/10/10 18:26

Ciao Fantina
prova a scaricare e utilizzare questo file nel quale ho inserito la macro funzionante consigliata da Anthony.

Se la macro fa effettivamente ciò che volevi ottenere allora, molto probabilmente, hai combinato qualche pasticcio e potrai copiare lo script da questo foglio e incollarlo nel tuo foglio con i tuoi dati.

Per togliere ogni filtro è sufficiente andare sul Menu Dati -> Filtro e togliere l'opzione Filtro Automatico

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 18/10/10 21:25

sì sì Flash, confermo che il risultato nel tuo file è quello che serve a me. Domani in ufficio copio il codice da lì dopodichè vi faccio sapere; ma che rabbia intorcinarsi in un semplice copiaincolla... grr grr grrr
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 20/10/10 12:44

:-?

Flash, disperazione: ho preso il tuo file, me lo sono inoltrato via mail da casa all'ufficio, l'ho aperto in ufficio (con la stessa versione di excel che ho a casa) risultato il file prova non funziona più!
Oltretutto in questo momento non riesco a collegarmi al tuo file da questo pc (ufficio) ... ragazzi vi ringrazio e non vi voglio tediare, avrò qualche baco particolare.... :( :cry:
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Flash30005 » 20/10/10 21:58

Sicuramente hai le protezioni delle macro alte quindi:

Apri excel (cartella vuota)
Vai sul Menu Strumenti -> Macro -> Protezione
seleziona Media o Bassa
Chiudi excel
e apri il file che non funzionava

fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Anthony47 » 20/10/10 22:58

Agli sforzi di Flash aggiungo questo suggerimento: nella macro, subito prima di Application.EnableEvents = False aggiungi la riga
Codice: Seleziona tutto
On Error goto Esci

In questo modo, in caso di errore all' interno della macro per qualsiasi motivo non si rischia che EnableEvents rimanga su False.

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

Re: FILTRO AUTOMATICO IN EXCEL

Postdi fantina » 21/10/10 11:14

A furia di strapazzarlo ora ha obbedito! La protezione non era alta, comunque l'ho messa bassa, ho inserito la frase di Anthony, ho riavviato tutta la baracca e ora va! Speriamo non si riaddormenti.....
Grazie per la vostra pazienza e, come sempre, per la soluzione! :)
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: FILTRO AUTOMATICO IN EXCEL

Postdi Anthony47 » 21/10/10 14:06

Non mettere la protezione "bassa", potresti mandare in esecuzione macro che nemmeno sai ci sono. "Media" e' sufficiente, poi di volta in volta dovrai confermare che vuoi abilitare òe macro o non vuoi.

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


Torna a Applicazioni Office Windows


Topic correlati a "FILTRO AUTOMATICO IN EXCEL":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti