Buscador que no dicrimine tildes en userform

Tengo un useform que al ingresar datos en un textbox va filtrando dichos datos en un listbox.

El problema es que si una fila del listbox tiene una palabra con tilde, y la misma palabra ingresada en el textbox no tiene la tilde, no la encuentra.

Dejo un ejemplo con imágenes:

Con textbox vacío, se ven las primera dos filas a modo de ejemplo. Ambas tienen las mismas palabras, pero una con tildes y otra no.

Al colocar "a" en el textbox solo filtra la fila que no tiene tildes. Mi propósito es que no discrimine las tildes, y que el usuario al colocar "a" en el textbox, estén las dos primeras filas, tanto con tildes y sin tildes.

¿Alguna idea de como puedo solucionar esto?

Les adjunto el libro:

https://drive.google.com/file/d/1Q1GWqyJaW5EDWh0iYhfBHsHg8fPzl4le/view?usp=sharing 

El userform esta enlazado al botón "BUSCAR PRODUCTO" de la hoja"Comprobante 2".

1 respuesta

Respuesta

.l .l Buenas joven, ¿qué version de excel esta utilizando para ejecutar dicho libro?

Porque según he tratado de comprobar en office 2007 y office 2013, el libro muestra una ejecución de macros con demasiados errores, por ejemplo, el más notable son argumentos sin establecer.

Buenas!! Estoy usando office 2016. 

En el procedimiento:
Private Sub Ingresar_texto_Change()
...cambie esta linea:
If UCase(descrip) Like "*" & UCase(Me.Ingresar_texto.value) & "*" Then
....por esta otra linea:
If LCase(AdecuarValor(descrip)) Like "*" & LCase(AdecuarValor(Me.Ingresar_texto.value)) & "*" Then

Luego al final del procedimiento, despues del End Sub, inserte esta funcion:

Private Function AdecuarValor(Cadena As Variant)
Cadena = LCase(Cadena)
Do Until InStr(Cadena, "á") = 0: Cadena = Replace(Cadena, "á", "a"): Loop
Do Until InStr(Cadena, "é") = 0: Cadena = Replace(Cadena, "é", "e"): Loop
Do Until InStr(Cadena, "í") = 0: Cadena = Replace(Cadena, "í", "i"): Loop
Do Until InStr(Cadena, "ó") = 0: Cadena = Replace(Cadena, "ó", "o"): Loop
Do Until InStr(Cadena, "ú") = 0: Cadena = Replace(Cadena, "ú", "u"): Loop
Do Until InStr(Cadena, "ü") = 0: Cadena = Replace(Cadena, "ü", "u"): Loop
AdecuarValor = Cadena
End Function

Con esto eliminamos las tildes de cualquier texto.

Saludos ,l ,.l

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas