Buscador

Hola, por aquí de nuevo molestándote
Aquí la consulta:
Tengo una macro que me busca en varias hoas de excel 97 pero no me funciona la idea en que si encuentra algo me diga en ue lugar esta y en que hoja se encuentra pero lo único que hace es pasar por todo los hojas abiertas y no relaiza nada. Tienes algún ejemplo para omtimiazar el mio te agradeceré.
Cuidate gracias de antemano.
No se que no veo para que funcione
Hasta pronto
Algo del código:
For Each Hoja In ActiveWorkbook.Sheets 'se para en cada hoja para buscar
Hoja.Select
Range("A1").Select
If Val(formbuscar.TextBox1) Then 'si lo encuentra
Select Case Hoja.Name 'de acuerdo al nombre de la hoja arma el mensaje
Case "INVENTORY"
Mensaje = "Batch" & formbuscar.TextBox1 & vbCrLf & "Batch en Inventario"
Case "ASIGNACIONES"
Mensaje = "Batch " & formbuscar.TextBox1 & " asignado el " & ActiveCell.Offset(0, 5).Value
Case "CONTENEDOR"
Mensaje = "Batch " & formbuscar.TextBox1 & " asignado el " & ActiveCell.Offset(0, 5).Value
Case "SUSPENDED"
Mensaje = "Batch " & formbuscar.TextBox1 & " asignado el " & ActiveCell.Offset(0, 5).Value
Case "ANEXOS"
Mensaje = "Batch " & formbuscar.TextBox1 & " asignado el " & ActiveCell.Offset(0, 5).Value
'Case "el nombre de la hoja que sigue"
'y armar los mensajes que necesitas que muestre
End Select
Exit For
End If
Next
End Sub

1 Respuesta

Respuesta
1
Disculpame la demora pero estoy con mucho trabajo y no encontré -hasta ahora- un momento para analizar tu problema.
Cunado leí tu planteo no encontré en el código, en qué momento efectúas la búsqueda...
En realidad deberías tener algo así como esto:
Sub CARLOSD()
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Select
With Hoja.UsedRange
Set c = .Find(Val(formbuscar.TextBox1), LookIn:=xlValues)
If Not c Is Nothing Then
Mensaje = "Batch " & formbuscar.TextBox1 & IIf(Hoja.Name = "INVENTORY", vbCrLf & "Batch en Inventario", " asignado el " & Range("A1").Offset(0, 5).Value)
End If
End With
Next
End Sub
Si bien no puedo probar lo que tienes en "formbuscar.TextBox1", hice otras búsquedas y funcionó correctamente.
El uso del IIF evita tener que nominar hoja en un select case, dado que vi que sólo cambia para la hoja INVENTORY.
Pruébalo y dime.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas