Saltar al contenido

Modificar macro que realiza búsquedas.


Recommended Posts

publicado

Buenas,

Pulsando en el botón BUSQUEDA se ejecuta una macro para buscar la palabra que introduzcamos en la hoja2. La macro lo que hace es que cada vez que encuentra un resultado selecciona la celda donde esta se encuentra en la hoja2.

Y es esto lo que quiero cambiar, ya que no quiero que cuando encuentre un resultado vaya saltando de celda en celda si no que me los muestre en la hoja1.

Este es el código que tengo:

Sub Rectánguloredondeado_AlHacerClic()
Dim FirstCell As Range
Dim NextCell As Range
Dim WhatToFind As Variant
WhatToFind = Application.InputBox("Palabra(s) clave:", "Búsqueda", , 800, 500, , , 2)
Hoja2.Activate
If WhatToFind <> "" And Not WhatToFind = False Then
Set FirstCell = Range("A1:A778").Find(What:=WhatToFind, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If FirstCell Is Nothing Then
Hoja1.Activate
Range("A1").Activate
MsgBox ("Valor no encontrado")
End If
If Not FirstCell Is Nothing Then
FirstCell.Activate
respuesta = MsgBox(FirstCell & vbCrLf & vbCrLf & vbCrLf & vbCrLf & " ¿Quiere continuar con los resultados?", vbYesNoCancel, "Se encontró " & Chr(34) & WhatToFind & Chr(34) & " : " & vbCrLf & vbCrLf)
If respuesta = vbCancel Then
Hoja1.Activate
Exit Sub
End If
If respuesta = vbNo Then
Hoja1.Activate
Range("A1").Activate
Exit Sub
End If
On Error Resume Next
While (Not NextCell Is Nothing) And (Not NextCell.Address = FirstCell.Address)
Set NextCell = Range("A1:A778").FindNext(After:=ActiveCell)
If Not NextCell.Address = FirstCell.Address Then
NextCell.Activate
respuesta = MsgBox(NextCell & vbCrLf & vbCrLf & vbCrLf & vbCrLf & " ¿Quiere continuar con los resultados?", vbYesNoCancel, "Se encontró " & Chr(34) & WhatToFind & Chr(34) & " : " & vbCrLf & vbCrLf)
If respuesta = vbCancel Then
Hoja1.Activate
Exit Sub
End If
If respuesta = vbNo Then
Hoja1.Activate
Range("A1").Activate
Exit Sub
End If
End If
Wend
Hoja1.Activate
Range("A1").Activate
End If
Set NextCell = Nothing
Set FirstCell = Nothing
End If
Hoja1.Activate
Range("A1").Activate
End Sub[/CODE]

MacroBuscar.xls

publicado

Buenas Macro Antonio,

Me parece bien utilizar este método, aquí adjunto un archivo con el tipo de datos que voy a tener, el anterior archivo tenia datos ficticios, ¿podrías obtener con este método el resultado esperado que he marcado?

Saludos y Gracias.

MacroBuscar MA-1.xls

publicado

Hola:

Los datos en la Hoja2 deben estar en las columnas 1, 2 y 3, y empezar en la fila 7, si no, no funcionará la búsqueda.

Puedes añadir mas países sin problemas. Se respetan todas las filas de la Hoja2 con la columna B vacía.

Saludos

MacroBuscar MA-2.xls

publicado

Que bien.. una última cosa, ¿es posible que cuando se haga una búsqueda y no se encuentre el resultado para un país determinado, no aparezca el nombre de dicho país?

Por ejemplo si buscamos inter, solo encuentra un resultado en Austria y ninguno en Belgium, que aparezca:

AUSTRIA

INTERCELL - ICEL.VI 10%

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.