Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
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