Hace poco contesté algo parecido a lo que estás necesitando, sólo que con un cuadro de texto, luego te explico con el cuadro combinado (ComboBox) que es casi igual. Voy a pegar y copiar lo que ya había contestado, adjunto también el vínculo de la conversación:
http://www.todoexpertos.com/mitodoexpertos/expert/questions/view/1948946/filtrar-al-momento-de-escribir-en-una-celda... para hacer lo que requiere necesita lo siguiente:
-Cuadro de texto (de la barra de cuadro de controles, no formularios)
Dibuja el cuadro de texto en la hoja donde va a hacer el filtro (debe tener toda la tabla filtrada)
Luego le das click derecho y eliges la opción "propiedades", en la
opción LinkedCell de propiedades le coloca A1, de esta forma, lo que
escriba en el cuadro de texto va a quedar en la celda A1(para esto debe
tener activa la opción "Modo de diseño" de la barra cuadro de
controles)
Después le vuelves a dar click derecho al control y escoges la opción "Ver Código" y agregas el siguiente código:
Private Sub TextBox1_Change()
Dim ValorFiltro$
ValorFiltro = Range("A1").Value
CriterioFiltro = "=*" & ValorFiltro & "*"
Selection.AutoFilter Field:=1, Criteria1:=CriterioFiltro, Operator:=xlAnd
End Sub
Por último desactivas la opción "Modo de diseño" y listo,
Para hacer lo anterior con un cuadro combinado (es decir, que en lugar que el usuario escriba el concepto lo escoja de un listado) puedes utilizar el cuadro combinado de la barra de controles y hacer lo mismo que ya expliqué con el cuadro de texto, la única diferencia es que tienes que incluirle un rango de entrada, es decir, un listado donde están los diferentes elementos, que para el caso tuyo serían las diferentes zonas, para esto, además de la propiedad LinkedCell hay una propiedad ListFillRange, donde le vas a colocar el rango donde están las diferentes zonas (Puedes utilizar un rango que esté en otra hoja). Y luego le agregas la misma macro que puse arriba.