Excel - Buscador inteligente ignorar acentos

 
Vista:
sin imagen de perfil

Buscador inteligente ignorar acentos

Publicado por Xtamel (9 intervenciones) el 27/11/2021 10:58:48
Estoy haciendo una base de datos con búsqueda inteligente y me gustaría que cuando escribo un nombre a buscar sin acentos el resultado me muestre los que si están acentuados

¿Me podéis ayudar?
Adjunto archivo de muestra.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscador inteligente ignorar acentos

Publicado por Antoni Masana (2486 intervenciones) el 29/11/2021 16:59:20
Prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub TextBox1_Change()
    Dim Criterio As String, Texto As String, a As Long
 
    For a = 1 To Len(Hoja1.TextBox1.Value)
        If InStr("aeiouáéíóúàéíóuÁÉÍÓÚÀÈÌÒÙ", Mid$(Hoja1.TextBox1.Value, a, 1)) > 0 Then
            Texto = Texto + "*"
        Else
            Texto = Texto + Mid$(Hoja1.TextBox1.Value, a, 1)
        End If
    Next
 
    If Hoja1.TextBox1.Value <> "" Then
        Criterio = "*" & Texto & "*"
        Range("A8").CurrentRegion.AutoFilter Field:=2, Criteria1:=Criterio
    Else
        Criterio = ""
        Range("A8").CurrentRegion.AutoFilter
    End If
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscador inteligente ignorar acentos

Publicado por Antoni Masana (2486 intervenciones) el 29/11/2021 20:27:11
En esta línea

1
Texto = Texto + "*"

Cambialo por esta

1
Texto = Texto + "?"

Esta solución tiene un inconveniente, si pones PARAZ filtra los PÉREZ
Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Buscador inteligente ignorar acentos

Publicado por Xtamel (9 intervenciones) el 30/11/2021 22:52:45
lo dejo asi
Texto = Texto + "*"

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por Cristina (2 intervenciones) el 06/04/2022 13:05:47
Buenos días,

He probado a usar el código y funciona, pero sabe decirme como arreglar el problema de que si buscas Paraz no aparezca Pérez? Lo he probado con otras palabras y también aparecen resultados que no cuadran con la búsqueda.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscador inteligente ignorar acentos

Publicado por Antoni Masana (2486 intervenciones) el 06/04/2022 18:48:49
Si filtras por P?r?z va salir Perez, Paraz, Porez, Pirez, Poroz, hasta Pyroz y todas las combinaciones imaginables.
Los filtros de Excel son limitados, no tiene Expresiones Regulares que permite filtros más personalizados.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por Cristina (2 intervenciones) el 07/04/2022 10:11:30
Vale, pues lo dejaré así. Muchas gracias por la rapidez en tu respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Buscador inteligente ignorar acentos

Publicado por Xtamel (9 intervenciones) el 30/11/2021 22:51:50
Genial, MUCHAS GRACIAS, funciona perfectamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Buscador inteligente ignorar acentos

Publicado por María (4 intervenciones) el 11/04/2022 11:58:09
Hola,
He creado un buscador inteligente, pero quiero que me haga una busqueda que no importe si introduces la palabra con o sin acento.
Tengo lo siguiente, pero no me funciona;

Private Sub TextBox1_Change()

Dim criteriofiltro As String, Texto As String, a As Long

For a = 1 To Len(Sheets("Adjudicaciones").TextBox1.Text)
If InStr("aeiouáéíóúàéíóuÁÉÍÓÚÀÈÌÒÙ", Mid$(Sheets("Adjudicaciones").TextBox1.Text, a, 1)) > 0 Then
Texto = Texto + "*"
Else
Texto = Texto + Mid$(Sheets("Adjudicaciones").TextBox1.Text, a, 1)
End If
Next

If Sheets("Adjudicaciones").TextBox1.Text <> "" Then

criteriofiltro = "*" & Sheets("Adjudicaciones").TextBox1.Text & "*"

Range("A7").AutoFilter Field:=4, criteria1:=criteriofiltro

Else
criteriofiltro = ""
Sheets("Adjudicaciones").Range("A7").AutoFilter

End If

End Sub

Alguien me puede echar una mano?
Muchas gracias por todo
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscador inteligente ignorar acentos

Publicado por Antoni Masana (2486 intervenciones) el 12/04/2022 14:49:24
Así el código se lee mejor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub TextBox1_Change()
    Dim criteriofiltro As String, Texto As String, a As Long
 
    For a = 1 To Len(Sheets("Adjudicaciones").TextBox1.Text)
        If InStr("aeiouáéíóúàéíóuÁÉÍÓÚÀÈÌÒÙ", Mid$(Sheets("Adjudicaciones").TextBox1.Text, a, 1)) > 0 Then
            Texto = Texto + "*"
        Else
            Texto = Texto + Mid$(Sheets("Adjudicaciones").TextBox1.Text, a, 1)
        End If
    Next
 
    If Sheets("Adjudicaciones").TextBox1.Text <> "" Then
        criteriofiltro = "*" & Sheets("Adjudicaciones").TextBox1.Text & "*"
        Range("A7").AutoFilter Field:=4, criteria1:=criteriofiltro
    Else
        criteriofiltro = ""
        Sheets("Adjudicaciones").Range("A7").AutoFilter
    End If
End Sub

Como no se que es lo que intentas o deseas hacer, no tengo donde probarlo y no se que es o cuando falla poco puedo ayudarte.

De entrada yo cambiaria esta línea:
1
Texto = Texto + "*"
Por esta otra:
1
Texto = Texto + "?"

Sube un libro de ejemplo y cuenta uno o varios casos en los que no funcione como esperas y di que tendría que salir.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por María (4 intervenciones) el 17/05/2022 13:47:44
Hola, muchas gracias por contestar.
He cambiado el * por ? y no me funciona.
Lo que intento hacer es un cuadro búsqueda inteligente que no importe si metes la palabra con acento o sin acento.
Tengo el cuadro de búsqueda creado de la siguiente manera,

Private Sub TextBox2_Change()

If TextBox2.Text <> "" Then

criteriofiltro = "*" & Sheets("Adjudicaciones").TextBox2.Text & "*"

Range("A7").AutoFilter Field:=6, criteria1:=criteriofiltro

Else
criteriofiltro = ""

Sheets("Adjudicaciones").Range("A7").AutoFilter

End If

End Sub

Y la búsqueda la hace perfectamente, el problema es que busca la palabra tal y como está escrita en el listado. Y me gustaría que buscara la palabra sin importar si lleva o no lleva acento.

Muchas gracias y saludos
María
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscador inteligente ignorar acentos

Publicado por Antoni Masana (2486 intervenciones) el 17/05/2022 17:03:36
Para ver en que esta fallando necesito que envies el libro.

Y por cierto hay un fallo en la macro que te envie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub TextBox1_Change()
    Dim Texto As String, a As Long
 
    With  Sheets("Adjudicaciones")
        For a = 1 To Len(.TextBox1.Text)
            If InStr("aeiouáéíóúàéíóuÁÉÍÓÚÀÈÌÒÙ", Mid$(.TextBox1.Text, a, 1)) > 0 Then
                Texto = Texto + "?"
            Else
                Texto = Texto + Mid$(.TextBox1.Text, a, 1)
            End If
        Next
 
        If Texto <> "" Then
            .Range("A7").AutoFilter Field:=4, criteria1:="*" & Texto & "*"
        Else
            .Range("A7").AutoFilter
        End If
    End With
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por María (4 intervenciones) el 18/05/2022 09:09:02
Buenos días!

Muchas gracias por tu ayuda.
El fichero no lo puedo abrir, no se si es posible que me lo puedas enviar en otro formato.

Muchas gracias por todo y saludos
María
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por María (4 intervenciones) el 18/05/2022 09:19:48
Muchísimas gracias por todo.

Ya me funciona correctamente.

un saludo a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscador inteligente ignorar acentos

Publicado por Enrique (1 intervención) el 25/08/2022 18:43:38
Hola podrian ayudarme quiero que esta búsqueda que estoy trabajando ignore los acentos:

Private Sub TextDescripcion_Change()
Dim DatoConsulta As String
If Hoja1.TextDescripcion.Value <> "" Then
DatoConsulta = "*" & Hoja1.TextDescripcion.Value & "*"
Range("A07").CurrentRegion.AutoFilter Field:=6, Criteria1:=DatoConsulta
Else
DatoConsulta = ""
Range("A07").CurrentRegion.AutoFilter
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar