Estimado Tengo el siguiente código pero al ejecutarlo con una entrada que no se encuentra me arroja error cerrando el form

El código es el siguiente, la idea es que no arroje el error, de otra parte con que función puedo limpiar automáticamente el form que quede como en ejecución inicial es decir en blanco para ingreso de valores.

------------------

Private Sub CommandButton1_Click()
Dim valor As String
unir.Text = Ubicacion.Text & Caja.Text
valor = unir.Text
tiendatemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 3, 0)
Tienda.Value = tiendatemp
direcciontemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 7, 0)
Direccion.Value = direcciontemp
ciudadtemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 8, 0)
Ciudad.Value = ciudadtemp
regiontemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 9, 0)
Region.Value = regiontemp
marcatemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 12, 0)
Marca.Value = marcatemp
tipotemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 13, 0)
tipo.Value = tipotemp
modelotemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 14, 0)
modelo.Value = modelotemp
serietemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 15, 0)
serial.Value = serietemp
End Sub

-----------------------

1 respuesta

Respuesta

H o l a:

Te anexo el código para buscar utilizando la función Find

El resultado de Find se establece en la variable objeto b

Si el dato existe entonces en b tenemos el resultado de la búsqueda.

Si no existe, entonces te envía un msg de error.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Dim valor As String
    Set h = Sheets("Detalle")
    unir = ubicacion & caja
    Set b = h.Columns("A").Find(unir, lookat:=xlWhole)
    If Not b Is Nothing Then
        tienda = h.Cells(b.Row, 3)
        direccion = h.Cells(b.Row, 7)
        ciudad = h.Cells(b.Row, 8)
        region = h.Cells(b.Row, 9)
        marca = h.Cells(b.Row, 12)
        tipo = h.Cells(b.Row, 13)
        modelo = h.Cells(b.Row, 14)
        serial = h.Cells(b.Row, 15)
    Else
        MsgBox "No existe la ubicacion y caja: " & unir
    End If
End Sub

Para limpiar los textbox, puedes poner en botón el siguiente código:

Private Sub CommandButton2_Click()
'Por.Dante Amor
    ubicacion = ""
    caja = ""
    unir = ""
    tienda = ""
    direccion = ""
    ciudad = ""
    region = ""
    marca = ""
    tipo = ""
    modelo = ""
    serial = ""
End Sub

Amigo gracias pero con ti código nunca encuentra coincidencia es decir siempre me indica que no se encontró el valor cuando realmente si lo hay forma de modificar este código para que emita el mensaje de error:

Private Sub CommandButton1_Click()
Dim valor As String
On Error Resume Next

unir.Text = Ubicacion.Text & Caja.Text
valor = unir.Text
If IsError(valor) Then
Ubicacion.Text = ""
Caja.Text = ""
Else
tiendatemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 3, 0)
Tienda.Value = tiendatemp
direcciontemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 7, 0)
Direccion.Value = direcciontemp
ciudadtemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 8, 0)
Ciudad.Value = ciudadtemp
regiontemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 9, 0)
Region.Value = regiontemp
marcatemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 12, 0)
Marca.Value = marcatemp
tipotemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 13, 0)
tipo.Value = tipotemp
modelotemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 14, 0)
modelo.Value = modelotemp
serietemp = Application.WorksheetFunction.VLookup(valor, Sheets("Detalle").Range("A:Z"), 15, 0)
serial.Value = serietemp
End If
End Sub

El código que te envié sí funciona. Lo que tengo que revisar son tus datos.

El código que estás poniendo no es práctico, yo solamente realizo una búsqueda y tu código hace 8 búsquedas.

Envíame tu archivo con ejemplos para revisar qué datos tienes.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Juan Francisco Olarte Paz” y el título de esta pregunta.

Revisaste tus datos, tal vez tenga un texto y lo estás buscando en donde hay números o la revés. Si probaste la macro y te funciona, recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas