Efectuar filtro avanzado en hoja diferente
Hola expertos.
Recurro a ustedes porque no se como hacer un filtro avanzado en modulo de hoja, haciendo referencia a otra hoja.
En la hoja2, celda B2 esta el encabezado de la lista y a partir de B3 los valores de la lista.
Esta lista es resultado de una extracción anterior, por lo que la lista es variable.
Lo que pretendo, es en la hoja3, hacer listas desplegables en los rangos A6:A40 y A73:A82 eliminando de la lista los registros seleccionados.
Este es el código que estoy utilizando sin éxito:
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False 'For Each Hoja In Worksheets ' Select Case Hoja.Name ' Case "Hoja3", "Hoja1" ' Case Else ' Hoja.Unprotect Password:="XXXX" ' Hoja.Visible = True ' End Select ' Next If Target.Address = "$N$3" Then Macro1 Macro2 Macro3 Sheets("Hoja3").Select End If Dim mDatos If Intersect(Target, [A6:A:40, A73:A82]) Is Nothing Then Exit Sub [a6;a40,a73:a82].Validation.Delete 'Celda auxiliar Hoja2.[ab2] = "=b3<>0" 'Filtro los números de la columna B, desde la fila 3 'y hacia abajo. En B3 hay un título (es necesario). With Hoja2 .Range([b2], [b2].End(xlDown)).AdvancedFilter 2, [ab1:ab2], [aa1], True mDatos = WorksheetFunction.Transpose(Range([aa2], [aa1].End(xlDown))) 'Asigno a la celda D6 una validación de datos End With Hoja3.[a6;a40,a73:a82].Validation.Add 3, Formula1:=Join(mDatos, ",") 'Limpio el rango auxiliar utilizado Hoja2.[aa1], [aa1].end(xldown).Delete End with 'For Each Hoja In Worksheets ' Select Case Hoja.Name ' Case "Hoja3", "Hoja1" ' Case Else ' Hoja.Protect Password:="XXXX" ' Hoja.Visible = False ' End Select ' Next Application.ScreenUpdating = True End Sub