busqueda instantánea en excel.

#1
Hola a todos.

Ya tuve una cuenta antes. y pues por inactividad me volaron. así que pues para comenzar a ser activo con esta cuenta nueva, les quiero enviar un archivo de excel con una muestra sobre un directorio que hice, pero resulta que no puedo subir archivos. Así que les voy a explicar.

Un día me enfrenté a un problemita: tenía una lista de proveedores bastante larga y pues era medio tedioso tener que estar buscando un contacto dentro de todos los registros. Para mi lo ideal era que escribiera un nombre dentro de una celda y que automáticamente y al instante me aparecieran los registros que tuvieran esa palabra o palabras.

Me dí a la tarea de buscar en internet y me encontré un código muy fácil que hiciera esto.

se utiliza de la siguiente manera, lo explicaré para excel 2007 pero es muy similiar en versiones anteriores.

-se crea un cuadro de texto con la herrameinta programador/insertar/cuadro de texto.
-una vez colocado en el lugar deseado, se hace lo siguiente, suponiendo que se quiere filtrar la información de la columna "A":
- se debe dejar una celda que no esté utilizada, por ejemplo A1.
-se da clic derecho en el cuadro de texto (esto de debe hacer en el "modo de diseño") y se elige "propiedades".
-una vez en propiedades colocamos "A1" en el campo "LinkedCell" y cerramos el cuadro de propiedades.
-volvemos a dar clic derecho sobre el cuadro de texto, y después "ver código", y pegamos el código siguiente:

Private Sub TextBox1_Change()
Dim ValorFiltro$
ValorFiltro = Range("A1").Value
CriterioFiltro = "=*" & ValorFiltro & "*"
Selection.AutoFilter Field:=1, Criteria1:=CriterioFiltro, Operator:=xlAnd
End Sub

- eso es básicamente todo. Solo habría que desactivar el modo diseño y empezar a filtrar los registros con el cuadro de texto creado. Verán que es muy simple y muy funcional sobre todo cuando se tienen muchos registros. para una agenda, para un directorio, en fin.. muchos usos.
- en cuanto al código, la opción Field:=1, se puede modificar por =2, =n, dependiendo el número de la columna que se desee filtrar 1 para a, 2 para b, etc.

No se exactamente de dónde lo saqué, o si ya se había publicado esto antes en este sitio, pero de verdad un agradecimiento a quien lo publicó. Insisto, no es mi solución.. solo la comparto y espero que les sea útil.

En el trabajo hice uno que busca por proveedor, por contacto, o por tipo de producto. y quedó muy útil. si quieren una copia se las envío con gusto, solo mándenme un mail.

saludos a todos y espero sus comentarios.

luc.
 
#3
Me puedes mandar ese archivo de favor a tagraz@hotmail.com de antemano gracias

Me puedes mandar ese archivo de favor a tagraz@hotmail.com de antemano gracias

Hola a todos.

Ya tuve una cuenta antes. y pues por inactividad me volaron. así que pues para comenzar a ser activo con esta cuenta nueva, les quiero enviar un archivo de excel con una muestra sobre un directorio que hice, pero resulta que no puedo subir archivos. Así que les voy a explicar.

Un día me enfrenté a un problemita: tenía una lista de proveedores bastante larga y pues era medio tedioso tener que estar buscando un contacto dentro de todos los registros. Para mi lo ideal era que escribiera un nombre dentro de una celda y que automáticamente y al instante me aparecieran los registros que tuvieran esa palabra o palabras.

Me dí a la tarea de buscar en internet y me encontré un código muy fácil que hiciera esto.

se utiliza de la siguiente manera, lo explicaré para excel 2007 pero es muy similiar en versiones anteriores.

-se crea un cuadro de texto con la herrameinta programador/insertar/cuadro de texto.
-una vez colocado en el lugar deseado, se hace lo siguiente, suponiendo que se quiere filtrar la información de la columna "A":
- se debe dejar una celda que no esté utilizada, por ejemplo A1.
-se da clic derecho en el cuadro de texto (esto de debe hacer en el "modo de diseño") y se elige "propiedades".
-una vez en propiedades colocamos "A1" en el campo "LinkedCell" y cerramos el cuadro de propiedades.
-volvemos a dar clic derecho sobre el cuadro de texto, y después "ver código", y pegamos el código siguiente:

Private Sub TextBox1_Change()
Dim ValorFiltro$
ValorFiltro = Range("A1").Value
CriterioFiltro = "=*" & ValorFiltro & "*"
Selection.AutoFilter Field:=1, Criteria1:=CriterioFiltro, Operator:=xlAnd
End Sub

- eso es básicamente todo. Solo habría que desactivar el modo diseño y empezar a filtrar los registros con el cuadro de texto creado. Verán que es muy simple y muy funcional sobre todo cuando se tienen muchos registros. para una agenda, para un directorio, en fin.. muchos usos.
- en cuanto al código, la opción Field:=1, se puede modificar por =2, =n, dependiendo el número de la columna que se desee filtrar 1 para a, 2 para b, etc.

No se exactamente de dónde lo saqué, o si ya se había publicado esto antes en este sitio, pero de verdad un agradecimiento a quien lo publicó. Insisto, no es mi solución.. solo la comparto y espero que les sea útil.

En el trabajo hice uno que busca por proveedor, por contacto, o por tipo de producto. y quedó muy útil. si quieren una copia se las envío con gusto, solo mándenme un mail.

saludos a todos y espero sus comentarios.

luc.
 

jtunet

Bovino maduro
#6
gracias,!!! mm podrias compartir el archiv??o, quiza me sea de utilidad, ahora que tengo un problema similar mi mail te lo mando como mensaje privado.. gracias por el aporte
 
W

wa-k

Visitante
#8
donde encunetro la herramienta programador en excel 2003? ALguien puede ayudarme?
GRacias
 
#11
ARCHIVO

Me puedes mandar el archivo por favor? ya que yo uso las funciones BUSCAR, BUSCARV o BUSCARH pero que tal que asi es mas facil?

Muchas Gracias.
 
Arriba