Macro busca varios criterios en la celda

Resuelto
mickysor -  
 mickysor -
Hola,

En la columna A:A me gustaría crear una macro de búsqueda. El problema es que quisiera poder hacer una búsqueda de múltiples criterios. Por ejemplo, en la celda A3 hay "italie rome 133". Me gustaría poder buscar "italie 133", por ejemplo.

Gracias por vuestra ayuda

8 respuestas

  1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    Buenas noches,

    No precisas si quieres las referencias o un filtro...
    Una propuesta de filtro dinámico:
    Filtro multiple.xls

    eric
    3
    1. mickysor
       
      Hola,
      ¿Cómo hiciste este filtro dinámico? ¡Es exactamente lo que quería!!!
      0
    2. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Hola,

      En VBA, clic derecho sobre el nombre de la pestaña de la hoja y 'ver código...'
      eric
      0
  2. melanie1324
     
    Hola,

    no sé si es exactamente lo que quieres, pero aquí tienes una pista:

    un consejo: pulsa F8 (esto ejecuta el código línea por línea) y coloca el cursor sin hacer clic en una celda para entender bien qué hace

    Sub x()

    texto = InputBox("Merci d'indiquer le texte recherché :", "texte recherché") ' permite al usuario ingresar lo que buscas
    If texte <> "" Then 'si no has ingresado nada, la macro se detiene
    i = 2 ' empieza en la fila 2
    Do While Cells(i, 1) <> "" 'el bucle continúa hasta que haya algo vacío en la columna A
    nbtexte = Len(texte) 'nbtexte = número de caracteres del texto buscado
    cellule = Cells(i, 1) 'cellule es igual al valor contenido en tu celda
    Do While Len(cellule) > 0
    If UCase(Left(cellule, nbtexte)) = UCase(texte) Then
    'pon aquí lo que debe hacer cuando encuentras tu texto
    cellule = "a"
    End If
    cellule = Right(cellule, Len(cellule) - 1)
    Loop
    i = i + 1
    Loop
    End If

    End Sub
    0
  3. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
     
    hola

    podría ser algo así

    For li = 21 To 24 a = InStr(1, Cells(li, 1), "Italie") b = InStr(1, Cells(li, 1), "133") If a * b > 0 Then MsgBox ("trouvé" & " - " & li) End If Next li


    RQ. atención a las mayúsculas, de lo contrario Ucase las convierte a mayúsculas

    buena continuación
    0
  4. melanie1324
     
    Hola,

    pero la función ucase permite transformar a mayúsculas, así evita problemas con acentos al comparar dos textos identicos. Además, tu código solo permite la búsqueda de «italie 133», mientras que el mío permite buscar cualquier texto.
    0
  5. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
     
    melanie

    tienes toda la razón, quería sugerir una idea para responder simplemente a la pregunta planteada

    pero

    el texto buscado es una parte del contenido de la celda, así que se impone la instrucción.

    que tengas un buen día
    0
  6. mickysor
     
    Buenas noches, siento decirte que tu macro no funciona en Excel 2003, Mélanie.
    0
  7. mickysor
     
    ¿Es posible hacer este tipo de búsqueda con una fórmula?
    0
  8. Mike-31 Mensajes publicados 18405 Fecha de registro   Estado Colaborador Última intervención   5 147
     
    Hola,

    en la celda tienes este tipo de dato, por ejemplo en A1 tienes Italia Roma 133 !

    si es así, y si entiendo bien, en la columna A tienes varios datos idénticos Italia Roma 133 o ¿son diferentes como Italia 133 !

    --
    A+
    Mike-31

    Un periodo de fracaso es un momento ideal para sembrar las semillas del saber.
    0
    1. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
       
      hola mike-31

      eso es lo que he entendido, por eso propuse instr en el post 2

      que tengas un buen seguimiento
      0
    2. mickysor
       
      gracias, voy a intentarlo
      0
    3. mickysor
       
      he añadido el código pero creo que hay que crear un botón específico de búsqueda
      0
    4. mickysor
       
      ¡Lo logré! ¿Puedes ponerlo en "resuelto"? No sé cómo hacerlo en estas publicaciones.
      0