MATCH CASE sin usar .FIND

11/07/2007 - 22:20 por galtor | Informe spam
Hola de nuevo

Hola he intentado usar la instruccion ".find(What:=..)" pero no
logró dominarla siempre sale algo que me manda a otro rango de celdas
y me salen errores, funciona a medias, por lo que mejor creé otra
funcion.

Dicha funcion está estructurada así, al hacer click en un boton mando
llamar un modulo donde me posiciono en la hoja y celda que elija y
comienzo un bucle para buscar solo en esa columna hacia abajo que se
ejecute siempre que el valor de la celda no este vacío y sea diferente
al valor del textbox:

call posicion_busqueda(6,"B4")
While Not IsEmpty(ActiveCell) And ActiveCell.Value <> NomCliente.Text
ActiveCell.Offset(1, 0).Activate
Wend

de modo que se detendría por dos razones: 1) si está vacía la celda y
2) si encontró el valor, lo reviso así:

If ActiveCell <> Empty Then
MsgBox "REGISTRO ENCONTRADO"
else
MsgBox "REGISTRO NO ENCONTRADO"
end if

Funciona perfecto!
...salvo por una razón: TENGO QUE ESCRIBIR CON EXACTITUD EL NOMBRE A
BUSCAR de lo contrario me manda al segundo msgbox.
Me gusta la instruccion ".find" porque puedo elegir el matchCase, para
que encuentre lo más parecido, por ejemplo en mi caso son nombres si
no está capturado como yo lo busco no lo encontrará jamás y me va a
crear conflictos si el error fue de captura o mío al consultar.

Quiero saber si puedo habilitar el "matchCase" en mi función para que
busque en los registros el valor más parecido a lo que le consulte,
por ejemplo si quiero buscar Cristian, que pueda hacerlo escribiendo
solamente Cris (además me he topado en estos días es que si busco un
cliente que sea una empresa tengo que escribir tooooodo el nombre
completo, lo que además hace perder valioso tiempo).

De antemano gracias.
Cristian

Preguntas similare

Leer las respuestas

#6 galtor
14/07/2007 - 00:24 | Informe spam
On 13 jul, 01:52, "Héctor Miguel"
wrote:
hola, Cristian !

[segun entiendo] lo que requieres es un 'sistema' de busqueda *dinamica* incluyendo datos parciales y/o parecidos/similares -?-
[creo que] tu mejor alternativa [datos conocidos hasta ahora] siguen siendo los filtros avanzados y [posiblemente] controles de lista -?-
asumiendo que tu libro contiene ya *suficientes* codigos/formularios/hojas/... [probablemente]...
te serviria revisar las siguientes conversaciones: ->http://tinyurl.com/2wkam4
[estoy seguro que de alguna de ellas podras obtener *tips* para complementar/adaptar/... lo que ya tienes desarrollado]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la cosulta original __



> ... requiero... buscar en la hoja donde almaceno a los clientes
> en la columna A guardo un id para diferenciarlos
> en la columna B estan los nombres y en otras columnas estan otros datos -domicilio, ciudad, tels, etc.-
> donde requiero que la busqueda se haga es en la columna B, del nombre, desde el renglon 1 hasta el "n"
>... no le entiendo bien al SearchOrder:=xlByColumns o usar xlByRows, a donde se va en cada caso?
> ... ejemplo he buscado Javier y a veces me resulta... en un registro que es "San Javier", al fin de cuentas es un resultado parecido.
> ... mi libro funciona casi en su totalidad en base a formularios y macros, la mayoría de las hojas están ocultas
> la busqueda es mediante un formulario con textboxes, al encontrar el nombre del cliente copio el id
> (que esta en la celda de al lado) a una variable y de ahi se derivan otras sub-busquedas en otras hojas
> para encontrar las ventas que tenga ese ID y otros detalles.
> Los demas campos finalmente se rellenan con los datos encontrados de todo ese proceso.
> Te digo que funciona bien, pero tengo que escribir exactamente el nombre que busco porque si no, no lo encuentra...- Ocultar texto de la cita -

- Mostrar texto de la cita -



Muchas gracias Hector

Lo revisaré con gusto, como puedes ver no soy experto con excel, sé un
poco más de visual basic (pero tampoco tanto, estoy retomando mis
lecciones para hacer mi aplicación independiente y con bases de datos
en access o mysql, ya veremos mientras tanto no me gusta dejar a
medias las cosas por eso estoy acá preguntando de todo...jejeje)

Sin embargo ayer estuve adaptando algunas de sus sugerencias y
combinandolas pude resolver mi problema, GRACIAS KL mucha parte de la
solución la tomé tu código propuesto.
Por fin ya no se sale del rango (determinado desde el principio en la
columna posible) y aprendí a usar bien el "on error GOTO" de modo que
cuando termina la busqueda y entra la parte de rellenar datos acomodé
la linea del goto con una condicion para que si las celdas no tienen
los datos concordantes me de un mensaje de no encontrado, un tanto
rudimentario, lo puliré con más práctica pero ya no se atora ni me da
errores :D

Gracias por sus consejos, lo valoro mucho, "nos leemos" luego.

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