Obtener los Numeros de Fila en una busqueda.

09/03/2009 - 10:59 por De_Corando. | Informe spam
Al grabar un MACRO al aplicar la funcion BUSCAR, le aplique un
USERFORM que contiene los
encabezados de una lista telefonica.
Al poner un texto o numero, en una celda (C3) y hacer click al boton
"BUSCAR", empieza la busqueda y me carga o muestra el USERFORM. Los
codigos de ese USERFORM, en cuanto a como poner los datos en el, ya lo
tengo arreglado, lo que me falta o necesito es obtener el Numero de la
fila o renglon donde esta posesionado el cursor o celda activa cuando
se esta realizando la busqueda, para obtener la informacion de la fila
y ser mostrada en la forma.
No deseo usar los AutoFiltros, por querer hacerlo mas personal.

El codigo usado y obtenido gravando la busqueda en MACRO es
Sub BUSCA()
Cells.Find(What:=Sheets("TELEFONOS").Range("C3"), After:=ActiveCell,
LookIn:=xlFormulas,
LookAt _:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:= _False,
SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
Cells.FindNext

y luego la informacion para pasar los datos al USERFORM.

Envio el ejemplo practico por si se pasa algun detalle.
Descargar de este enlace:

http://www.box.net/shared/bqa6c2cx1f

Se que puedo aprender mas.

De antemano agradezco sus atenciones.
Corando.

Preguntas similare

Leer las respuestas

#6 De_Corando.
10/03/2009 - 02:39 | Informe spam
Buenas Noches Hector Miguel.
un cordial saludo

Hice los cambios y persiste el problemita.
Ademas veo un gran detalle. La columna "A" esta en blanco,"B" es
numero consecutivo de la lista, "C" Nombre y "D" Apellidos, "E", "F",
etc son numeros, la "O" y "P", pueden contener numeros o textos,.
Cuando busca en "C" y "D", no hay problemas, pero ya cuando se
encuentra fuera de ese rango, es cuando se "estaciona" por mas click
que le doy.
Donde el dato a buscar esta en "C3", arriba de los encabezados
(fila
4 de las columnas)

Nota: No existen formulas en el rango de la busqueda,
el ejemplo lo tengo aqui:

http://www.box.net/shared/bqa6c2cx1f

Agradezco tu interes en el problemita.
Respuesta Responder a este mensaje
#7 Héctor Miguel
10/03/2009 - 04:56 | Informe spam
hola, Corando !

en el codigo del libro de tu enlace hay una "ceguera" desde la perspectiva del metodo ".Find" para indicarle el "FindNext"
=> NO debes ".Select" la "ActiveCell" arbitrariamente, sino dejar que el propio metodo se estacione donde va encontrando

prueba corrigiendo dos lineas (OJO: que estan repetidas en ambos procedimientos)...

1) de: -> If Not rngC Is Nothing Then rngC.Offset(0, 2).Select
a: -> If Not rngC Is Nothing Then rngC.Select

2) de: -> Worksheets("TELEFONOS").Cells(NUM, 3).Select
a: -> NADA... omite/marca/elimina/... esta linea (es una de las que estan "estorbando" para el ".FindNext")

tambien podrias ahorrarte unas cuantas lineas de codigo si en lugar de dar nombre a tus textboxes (mas sus variables)
los dejas numerados de manera natural (TextBox1, TextBox2, etc. etc.) y los rellenas con un bucle del tipo:

for <contador> = 1 to n_columnas
controls("textbox" & n) = cells(num_de_fila, n)
next

saludos,
hector.

__ OP __
Hice los cambios y persiste el problemita. Ademas veo un gran detalle.
La columna "A" esta en blanco,"B" es numero consecutivo de la lista
"C" Nombre y "D" Apellidos, "E", "F", etc son numeros, la "O" y "P", pueden contener numeros o textos
Cuando busca en "C" y "D", no hay problemas, pero ya cuando se encuentra fuera de ese rango
es cuando se "estaciona" por mas click que le doy.
Donde el dato a buscar esta en "C3", arriba de los encabezados (fila 4 de las columnas)
Nota: No existen formulas en el rango de la busqueda, el ejemplo lo tengo aqui:
http://www.box.net/shared/bqa6c2cx1f
Respuesta Responder a este mensaje
#8 Héctor Miguel
10/03/2009 - 05:09 | Informe spam
hola (de nuevo), Corando !

incluso, yo probaria como primera instancia con el formulario "integrado" de la aplicacion
el que obtienes desde (menu:) datos / formulario
que resulta en un dialogo bastante amigable e intercambiable entre consulta/edicion de datos

(solo necesitas "separar" la base de datos insertando una fila en blanco entre tus filas 3 y 4)

saludos,
hector.
Respuesta Responder a este mensaje
#9 De_Corando.
11/03/2009 - 05:22 | Informe spam
Buenas Noches, Hector Miguel.

Te agradezco tu ayuda, ahora si funciona tal cual lo queria, a la
perfeccion.
Hice solo algunas cosas recomendadas, que hacen funcionar mejor el
programa. Se aprende cuando se pregunta. Muchas gracias.

En cuanto a utilizar el formulario de datos integrado, le veo algunos
inconvenientes, por ejemplo, si quisiera buscar un numero telefonico,
en ese formulario lo busca solo en la columna que le pongas, y sin
embargo en la que presento lo busca en todas las columnas. O si deseo
buscar los ultimos 4 digitos de un numero telefonico o partes de un
nombre, no encuentra nada, solo datos integros o completos, en fin. El
formulario Integrado esta perfecto, pero es cuestion de gustos.

Mil gracias por vuestra ayuda.
Nota: ya quedo actualizado el enlace del ejemplo
http://www.box.net/shared/bqa6c2cx1f
para el que le interese o le sirva de ayuda.
Respuesta Responder a este mensaje
#10 Héctor Miguel
11/03/2009 - 06:12 | Informe spam
hola, Corando !

En cuanto a utilizar el formulario de datos integrado, le veo algunos inconvenientes ...

Nota: ya quedo actualizado el enlace del ejemplo http://www.box.net/shared/bqa6c2cx1f



en cuanto al formulario de datos integrado, pues si... tiene sus "limitantes" :-((

en cuanto al ejemplo actualizado (creo que) solo le hace falta una de dos...
o modificar en el codigo cuando se deposita el numero de registro de -4 a -5
o eliminar la fila que insertaste (por la sugerencia de probar con el formulario integrado) :))

y un detalle, el codigo busca/encuentra incluso la celda donde pones el criterio (C3) ;)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida