Error definido por aplicación u objeto

Saludos, tengo un problema bien extraño con una macro que trabaja con diferentes registros, lo extraño es que la macro funciona, me lanza este error después de haber realizado todo lo que le pido, pues bueno explico un poco el código que se realiza al hacer click en una combobox:
Sheets("Registro").Activate
dato = Entrega2.Value
rango = "NEntrega"
Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
Pedido2.Value = Range(ubica).Offset(0, -1).Value
Destino.Value = Range(ubica).Offset(0, -2).Value
PaletPedido.Value = Range(ubica).Offset(0, 3).Value
If Range(ubica).Offset(0, 10).Value = "SI" Then
UserForm3.Show
Else
Ruta.Value = Range(ubica).Offset(0, 7).Value
End If
End If
Set midato = Nothing
End Sub
Esta macro la utilizo para identificar los datos correspondiente a una entrega que se ingresa mediante una combobox, funciona estupendamente, el problema es que como es un planilla de despacho una vez que se selecciona la entrega al darle click en aceptar tengo la instrucción
Range(ubica).EntireRow.Delete
Esto elimina la celda (lo que quiero que haga), pero (y estimo que el error es este) que al eliminar la celda elimino la referencia para "dato" afectando el valor asignado a "midato" por lo que en el código anterior me lanza error en la linea:
Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
Esto lo comprobé eliminando la instrucción de borrar la fila del código y este funciona solo que no borra la fila

1 Respuesta

Respuesta
1
¿Por qué no mueves el "dato" a otra celda, borras y luego lo vuelves a colocar donde quieres.
[email protected]
Estimado:
Ya pensé en dicha solución el problema es que en si mover la celda fila no elimina el error puesto que la referencia sigue cambiando
Me explico:
"midato" es tiene como objetivo localizar el dato en un rango variabel que tiene como nombre (NENtrega) luego de que encuentra este dato, guarda su ubicación (fila y columna) en la variable "ubica", con esta puedo buscar en cada columna de esa fila y mostrar los datos correspondientes en una textbox, esto logra que cuando en una combobox yo selecciono el numero de entrega me muestre en unas textbox datos como numero de pedido, hoja de ruta, etc.
Luego al despachar el pedido, dicha fila debe eliminarse del registro, puesto que ya fue despachada, ahí esta el problema según creo... porque "midato" esta basado en el registro especifico y al borrar la fila entera, pierde su referencia.
Yo creo que la solución esta en aislar de alguna forma la referencia de "midato" lo cual no se como hacer pero la idea es que solo le asigne valor una vez y luego de eso no le vuelva asignar.
A todo esto, mi dato esta definida como una variant, esto lo copie de otro código
Saludos.
Entonces mueve el dato a otro lado y después lo posicionas donde estaba.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas