Macro que muestre mensaje al no encontrar dato buscado en un rango

A Través de un Textbox1 de un formulario buscar en una Hoja y rango especificado (A1:A200) busque el dato ingresado en el Textbox1, silo encuentra que capture información de la B al Textbox2 y si no lo encuentra que arroje un mensaje que no se encontró el dato.

2 respuestas

Respuesta
1

[Hola 

Te paso la macro


Valora la respuesta para finalizar

Private Sub CommandButton1_Click()
 Set r = Range("A1:A200")
    Set b = r.Find(TextBox1, lookat:=xlWhole)
        If Not b Is Nothing Then
            f = b.Row
            TextBox2.Text = Cells(f, "B")
        Else
        MsgBox "Dato no encontrado"
        End If
End Sub

Hola Adriel, gracias por la pronta respuesta, comentarte que la macro utilizada es similar a la que me pasastes, al ejecutarla con un dato que no existe, la macro no arroja el mensaje, no hace nada. Te copio lo que utilizo y corregir el error. Mil gracias.

On Error GoTo noencontro

ActiveSheet.Range("a6:a200").Find(What:=Me.txtbuscarnum, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate

If Not Me.txtbuscarnum Is Nothing Then

ActiveCell.Offset(0, 1).Select
Me.txtprove = ActiveCell

Else
MsgBox "Registro no Encontrado", vbCritical
Me.txtbuscarnum = ""
Me.txtbuscarnum.SetFocus
End If

noencontro:
MsgBox "no se encontro"

Va la macro

Private Sub CommandButton1_Click()
Set b = ActiveSheet.Range("A6:A200").Find(What:=Me.txtbuscarnum, LookAt:=xlWhole)
    If Not b Is Nothing Then
        Me.txtprove = b.Offset(0, 1)
    Else
        MsgBox "Registro no Encontrado", vbCritical
        Me.txtbuscarnum = ""
        Me.txtbuscarnum.SetFocus
    End If
End Sub

Gracias Adriel funciona perfecto, solo una pequeñisima modificación para que seleccione el dato encontrado en el rango que se  busca. Gracias.

Después de esto

 Me.txtprove = b.Offset(0, 1)

pon esto 

b.Select
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas