Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Filtrare i dati (filtro contiene) con macro

926 views
Skip to first unread message

Andrea22

unread,
Nov 26, 2011, 3:21:11 AM11/26/11
to
Buonasera a tutti un piccolo aiuto. In excel 2010 o anche precedenti
se devo filtrare i dati devo usare la freccia rivolta verso il basso,
dalla colonna, e il relativo menu a tendina, poi filtra per testo e
contiene...

Essendo un'operazione per me molto frequente dovrei creare una macro
che si apra direttamente su personalizza filtro automatico e da lì
poter inserire il testo da cercare....

Inoltre dovrei aver la flessibilità che offre il menu a tendina perché
magari una volta devo operare con un filtro sulla colonna A e un'altra
volta sulla B, ecc.....


E' possibile?

Grazie a tutti e buona serata

Andrea

elby

unread,
Nov 26, 2011, 12:57:12 PM11/26/11
to
Tutte le operazioni di filtro operate all'interfaccia utente possono
essere effettuate da macro. Ma attenzione non osserverai l'apertura
del menù sa tendina. Quello che otterrai è l'equivalente dell'effetto
di una macro ottenuta con la registrazione di una macro..
Prova a registrane una interagendo con l'interfaccia utente ( aperura
dei vari menù e click ); quando riesegui la macro, ti si produrrà
l'effetto dei filtri ma non osservi l'apertura di un menù. Per
ottenere l'apertura di un menù perchè l'utente comntinui poi
manulmanet l'operazione sono necessarie delle API di Windows. Nel tuo
caso se vuoi un amacro che ti permetta un'interazione dinamica devi
ricorrere o ad una inputbox o ad un Form in cui inserire la stringa di
ricerca.
Per es per dei dati in D1:D7 ( in D1 l'etichetta di colonna ) la
registrazione di macro per un valori contenebti una a contiene il
codice:
Sub Macro1()
Selection.AutoFilter
ActiveSheet.Range("$D$1:$D$7").AutoFilter Field:=1,
Criteria1:="=*a*", _
Operator:=xlAnd
End Sub

La macro definitiva ( da immettere nel modulo del foglio dove deve
agire) ed ovviamnete da adattare alle tue esigenze potrebbe essere:

Sub Macro2()'
Dim strCriteria As String
strCriteria = InputBox("Inserisci stringa di ricerca")
If Len(Trim(strCriteria)) > 0 Then
strCriteria = "*" & strCriteria & "*" 'criterio contiene
Else
Range("$D$1:$D$7").AutoFilter Field:=1
Exit Sub
End If
Range("$D$1:$D$7").AutoFilter Field:=1 ' toglie il criterio se c'è
Range("$D$1:$D$7").AutoFilter Field:=1, Criteria1:=strCriteria, _
Operator:=xlAnd
End Sub

Come puoi vedere l'effetto finale è quello dell'interfaccia utente ma
non ti è concesso di simulare l'apertura dei menù.
Puoi comunque assegnando una scorciatoia di tastiera avviere la macro
senza usare il mouse.
Ciao Elio

Andrea22

unread,
Nov 28, 2011, 3:25:44 AM11/28/11
to
> Ciao la ua soluzione è perfetta!! o quasi

Ora devo farsì che oltre a cercare il testo mi possa cercare dei
numeri (ad es 2.000,12); quindi indifferentemente o uno o l'altro

Poi cosa importante quando mi si apre la input box come prima domanda
mi deve chiedere dove far la ricerca, su quale colonna (la ricerca di
default deve esser fatta su tutta la colonna)

Ho provato a registrare una macro usando la funzione filtro ma con
risultati disastrosi.

Se hai voglia aspetto Tue nuove dritte.

Per ora Grazie 1000

Andrea

Andrea22

unread,
Nov 29, 2011, 4:17:10 AM11/29/11
to
> any help??

Andrea22

unread,
Nov 29, 2011, 9:10:02 AM11/29/11
to
ed anche per favore come faccio a togliere sempre con una macro
l'opzione filtrata, cioè il cancella filtro?

Grazie infinite

Andrea

luigi sellitti

unread,
Nov 12, 2022, 4:57:49 PM11/12/22
to
Buonasera se vorrei filtrare solo numeri ?
e numeri e testo insieme potete aiutarmi?

luigi sellitti

unread,
Nov 12, 2022, 5:00:51 PM11/12/22
to
Buonasera potresti aiutarmi
Ho trovato di aiuto questa mia problematica.
Ma è possibile saper come fare se vorrei
1) filtrare solo numeri?
2) numeri con testo insieme
Grazie

issdr

unread,
Nov 13, 2022, 5:42:39 AM11/13/22
to
luigi sellitti wrote:

> Buonasera se vorrei filtrare solo numeri ?
> e numeri e testo insieme potete aiutarmi?

ciao, ti consiglio di scrivere un post nuovo (non continuare questa
discussione di 11 anni fa).

cerca di descrivere chiaramente cosa vuoi fare.

0 new messages