Ejecutar macro desde lista desplegable
Necesito tomar los datos de un filtro avanzado y aser que aparezcan los resultados en una lista desplegable. La idea esta. En la hoja3 de mi planilla selecciono la celda b1 que contiene una lista con los nombres de distintos clientes. Por otro lado tengo habilitada una macro (llamada "extraer") que filtra las distintas propiedades de los cltes con sus datos catastrales de forma que solo me aparecen los del cliente seleccionado. El objetivo es que al seleccionar desde la lista desplegable de clientes (celda B1) se cargue otra lista desplegable (en celda B2) con los datos catastrales de las propiedades de ese cliente. Estuve mirando otros ejemplos en este mismo foro y los mas parecido que halle seria esto:
Desde la hoja
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$b$1" Then Call extraer
End Sub
Y desde el modulo
sub extraer()
1)filtrar las propiedades del cliente seleccionado
2) Añadir los datos estriados a la lista desplegable de propiedades de ese cliente
Range("G2").Select
Selection.ClearContents
Range("G5:Q25").Select
Selection.ClearContents
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("G2").Select
ActiveCell.FormulaR1C1 = "=+R[-1]C[-5]"
Range("G4:Q24").Select
Range("datos").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"Criteria"), CopyToRange:=Range("G4:Q15"), Unique:=False
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("B2").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$Q$5:$Q$25"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
end sub
Pero no me esta funcinando. Si me pueden dar una mano mil