Dato no encontrado.

Cordial saludo

tengo una macro que al ejecutarla busque una celda en particular y la seleccione, esa parte ya la tengo sin embargo no he condicionarla para cuando no la encuentra, pues si el valor no existe me genera error.

este es el código que llevo hasta el momento:

a = InputBox("digite el numero de pedido que desea ver")
If a = "" Then
MsgBox ("no ahy datos seleccionados")
Hoja12.Visible = xlSheetVeryHidden
Exit Sub
End If
Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Select

también lo intente asi pero no me funciono pues no reconocel el After:=activecell.

If a = "" Then
MsgBox ("no ahy datos que buscar")
Hoja12.Visible
= xlSheetVeryHidden
Hoja4.Select
Exit Sub
End If
Set busca =
ActiveSheet.Range("A3:A1048576").Find(a, after:=activecells , LookIn:=xlValues,
lookat:=xlWhole, searchOrder:=xlbycolumns)
If busca Is
Nothing Then
MsgBox ("dato encontrado en la celda")
Exit Sub
End If

1 Respuesta

Respuesta
1

La 2da opción es la mejor porque así la búsqueda se realiza en un rango acotado ahorrando tiempo y recursos.

La idea es:

If not busca is nothing then

busca.select 'dato encontrado

'aquí verás como sigue cuando lo encuentra

else

msgbox "dato no encontrado"

'aquí verás qué hacer cuando no lo encuentre

end if

Comentame si pudiste armarla con esto.

gracias sin embargo el problema con ese código es que no recibe esta orden after:=activecell de lo contrario me serviría perfectamente, el problema es que me la busca y simplemente me la encuentra o no, pero no me la ubica..

gracias por tu ayuda y espero tu respuesta.

Sub MacroX()
'x Elsamatilde
a = InputBox("digite el numero de pedido que desea ver")
If a = "" Then
 MsgBox ("no hay datos que buscar")
 Hoja12.Visible = xlSheetVeryHidden
 Hoja4.Select
 Exit Sub
End If
Set busca = ActiveSheet.Range("A3:A1048576").Find(a, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
 busca.Select 'dato encontrado
'aquí verás como sigue cuando lo encuentra
Else
 MsgBox "dato no encontrado"
'aquí verás qué hacer cuando no lo encuentre
End If
End Sub

Atención con la variable 'a', que si puede estar guardando el dato como texto en lugar de nro. Si ese es tu caso debes colocar la función Val x ej aquí Find(Val(a),....

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas