filtrare uno sheet utilizzando dati da una colonna.

Anonimo
2018-07-10T13:16:44+00:00

buondì

volevo fare un apiccola macro per filtrare uno sheet di una serie di valori presenti in una colonna di uno sheet diferso.

ho cercato a giro ma trovo solo con stringhe (anche complesse) ma mai da un insieme di celle o colonna.

premetto il numero ddelle celle può cariare.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-07-10T16:36:46+00:00

Ciao Mistretta,

si nella mia testa è semplice ma spiegarlo mi è difficile.

sul Sheet1 ho una estrazione da filtrare mettiamo di 15000 linee e voglio estrarre una serie di linee da poi copiare in un altro file.

il listato di questi campi di cui devo filtrare è sul Sheet2 sulla colonna D:D (saranno circa un migliaio di linee) pensavo di usare il comando autofilter con Criteria che abbia tutti i valori della colonna D:D dello sheet2.

ho già la macro che mi fa tutte le operazioni necesarie ma il filtro si basa su una stringa in una cella, volevo che ogni volta lanciavo la macro si potesse prendere automaticamente la serie di campi su cui effettuare il filtro.

finora usavo questo comando, in cuo la stringa aveva i campi per il filtro separati da una virgola.

    ActiveSheet.Range("$A:$BR").AutoFilter Field:=2, Criteria1:=Array(Split(Workbooks("dd.xlsm").Worksheets("Macro").Range("K1").Value, ",")), Operator:=xlFilterValues

so di essere un po confusionario a descrivere, perciò fammi tutte le domande che hai bisogno e ti ringrazio del tuo tempo

Prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH_Filtro As Worksheet, SH_Criteri As Worksheet

    Dim SH_Dest As Worksheet

    Dim rngCriteri As Range

    Dim arrCriteria As Variant

    Dim LRow As Long

    Const sFoglioFiltro As String = "Foglio1"                 '<<=== Modifica

    Const sFoglioCriteri As String = "Macro"         '<<=== Modifica

    Const sFoglioDestinazione As String = "Foglio3"    '<<=== Modifica

    Set WB = ThisWorkbook

    With WB

        Set SH_Filtro = .Sheets(sFoglioFiltro)

        Set SH_Criteri = .Sheets(sFoglioCriteri)

        Set SH_Dest = .Sheets(sFoglioDestinazione)

    End With

    With SH_Criteri

        LRow = .Cells(Rows.Count, "A").End(xlUp).Row

        Set rngCriteri = .Range("A2:A" & LRow)

    End With

    arrCriteria = Application.Transpose(rngCriteri.Value)

    SH_Filtro.Range("A1:D1").AutoFilter _

            Field:=2, _

            Criteria1:=arrCriteria, _

            Operator:=xlFilterValues

    SH_Filtro.AutoFilter.Range.Copy _

            Destination:=SH_Dest.Range("A2")

End Sub

'<<=========

Potresti scaricare il mio file di prova Mistretta2018010.xlsm

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-07-11T07:29:25+00:00

    ti ringrazio 

    ottimo lo provo al più presto.

    non so se oggi riesco a ritagliarmi il tempo per provarlo ma spero propio di si.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2018-07-10T15:47:16+00:00

    Grazie per la risposta celere.

    si nella mia testa è semplice ma spiegarlo mi è difficile.

    sul Sheet1 ho una estrazione da filtrare mettiamo di 15000 linee e voglio estrarre una serie di linee da poi copiare in un altro file.

    il listato di questi campi di cui devo filtrare è sul Sheet2 sulla colonna D:D (saranno circa un migliaio di linee) pensavo di usare il comando autofilter con Criteria che abbia tutti i valori della colonna D:D dello sheet2.

    ho già la macro che mi fa tutte le operazioni necesarie ma il filtro si basa su una stringa in una cella, volevo che ogni volta lanciavo la macro si potesse prendere automaticamente la serie di campi su cui effettuare il filtro.

    finora usavo questo comando, in cuo la stringa aveva i campi per il filtro separati da una virgola.

        ActiveSheet.Range("$A:$BR").AutoFilter Field:=2, Criteria1:=Array(Split(Workbooks("dd.xlsm").Worksheets("Macro").Range("K1").Value, ",")), Operator:=xlFilterValues

    so di essere un po confusionario a descrivere, perciò fammi tutte le domande che hai bisogno e ti ringrazio del tuo tempo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-07-10T15:03:34+00:00

    Ciao Mistretta,

    volevo fare un apiccola macro per filtrare uno sheet di una serie di valori presenti in una colonna di uno sheet diferso.

    Dunque, vuoi ottenere sul primo foglio i risultati del fltraddio di un altro foglio? Se così fosse, anche senza una macro, potresti sfruttare lo strumento Filtro avanzato.

    ho cercato a giro ma trovo solo con stringhe (anche complesse) ma mai da un insieme di celle o colonna.

    Non capisco! Potresti dare un esempio oppure fornire un link.

    premetto il numero ddelle celle può cariare.

    Credo che sarebbe utile vedere un filer di esempio per vedere la disposizione dei dati ed i desiderati risultati e per meglio capire la tua esigenza. Quindi, ti chiederei gentilmente di caricare il file problematico, dopo averlo depurato dei dati sensibili, su un servizio di condivisione di file, ad esempio Microsoft OneDrive o DropBox, e postare un link al file in una risposta qui.

    Per caricare il file su Microsoft OneDrive, vedi:

    Condividere file e cartelle di OneDrive

    Nel caso di DropBox, vedi:

    Come faccio a condividere file e cartelle in Dropbox?

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento