Creare la stringa per il filtro con più criteri su un elenco

32 views
Skip to first unread message

by....@gmail.com

unread,
Oct 30, 2021, 3:09:13 AM10/30/21
to
Ciao a tutti, devo filtrare un elenco, però i criteri sono diversi sulla stessa colonna, con il registratore di macro ho ricavato questo codice

ActiveSheet.Range("$A$1:$BG$9998").AutoFilter Field:=58, Criteria1:=Array("3", "6", "8"), Operator:=xlFilterValues

come potete vedere nel filtro sono dichiarati 3 criteri in un array.
ora tramite VBA sono riuscito a riprodurre la stringa dell'array, il risultato è questo:

M = ""3" ,"6" ,"8""

logicamente se inserisco "M" nel criterio non funziona in quanto c'è la doppi Apici all'inizio ed alla fine della stringa per l'array come vedete sotto

Criteria1:=Array(M),

non riesco a toglierli nemmeno con l'istruzione Mid(), del tipo

Criteria1:=Array(mid(M, 2, len(M)-1))

come potrei risolvere diversamente, o qualche consiglio, purtroppo i criteri non li accetta come numeri li vuole sotto forma di stringa

Ciao By Sal (8-D

casanmaner

unread,
Oct 30, 2021, 2:29:52 PM10/30/21
to
Dim M as Variant
M = Array("3", "6", "8")

Criteria1:= M

by....@gmail.com

unread,
Oct 31, 2021, 4:05:51 AM10/31/21
to
Il giorno sabato 30 ottobre 2021 alle 20:29:52 UTC+2 casanmaner ha scritto:
> Dim M as Variant
> M = Array("3", "6", "8")
>
> Criteria1:= M

Ciao Casanmaner, grazie per la risposta, ma purtroppo non funziona perche mi seleziona solamente "8", l'ultimo dell'Array.

ora cerco di creare una colonna D'appoggio per vedere se riesco a fare il filtro.

Ciao By Sal (8-D

by....@gmail.com

unread,
Oct 31, 2021, 4:58:44 AM10/31/21
to
Ciao Ho risolto con una colonna di appoggio senza tante complicazioni, visto che i numeri in oggetto sono il numero del mese, con la colonna di appoggio ed un ciclo di ricerca controllo se il numero corrisponde al mese ed inserisco 1 nell'appoggio in ultimo filtro solo l'appoggio e mi riporta tutti i numeri cercati.

Ciao e Grazie a tutti By Sal (8-D

Bruno Campanini

unread,
Nov 13, 2021, 7:40:51 AM11/13/21
to
by....@gmail.com has brought this to us :
Ootrebbe andare così?
=======================
Public Sub Test()
Dim M, i, S

M = Array(3, 6, 8)
For i = 0 To UBound(M)
S = S & M(i) & ", "
Next
S = Mid(S, 1, Len(S) - 2)
MsgBox S
End Sub
=====================

Bruno

by....@gmail.com

unread,
Nov 14, 2021, 3:08:04 AM11/14/21
to
Il giorno sabato 13 novembre 2021 alle 13:40:51 UTC+1 Bruno Campanini ha scritto:

> Potrebbe andare così?
> =======================
> Public Sub Test()
> Dim M, i, S
>
> M = Array(3, 6, 8)
> For i = 0 To UBound(M)
> S = S & M(i) & ", "
> Next
> S = Mid(S, 1, Len(S) - 2)
> MsgBox S
> End Sub
> =====================
>
> Bruno
Ciao Bruno, grazie per la risposta, adesso faccio le prove con il tuo metodo, per vedere se funziona.

ma il Filtro vuole espressamente il formato "Array(3, 6, 8)" senza le virgolette, e non una variabile che contenga "Array(3, 6, 8)", non so perche i misteri di Excel, comunque faccio le prove e ti farò sapere.

ho fatto anche la prova ad inserire "Array(m)" la quale m contiene "3, 6, 8", il fatto principale che comunque si inserisca ci sono sempre le doppie virgolette ad inizio e fine.

Ciao By Sal (8-D
Reply all
Reply to author
Forward
0 new messages