EXCEL VBA, me sale error Run-time error `2147417848

Que tal tengo un código la cual se basa en que cuando tengo un cambio en un textbox, en este caso agregue con un lector un código, este código sea buscado en otra hoja y que me lo muestre en distintos labels, para que se pegue en otra hoja como base de datos, el problema es que tengo un combo box en cual selecciono antes de leer un código con el lector, primero selecciono se podría llamar un status, y voy leyendo códigos con el lector y automáticamente se van agregando en la tabla por orden, el problema es que cuando quiero cambiar de valor en el combo text me muesta un error.

Run-time Error `2147417848 (80010108)

Automation Error

The Object invoked has  disconnected from its clients.

Ayuda por favor, le voy a adjuntar mi codigo de todo el form

Private Sub Cerrar_Click()
Unload Me
End Sub

Private Sub TrackingLabel_Change()

Set h1 = Sheets("Insert_Sheet")
Set h2 = Sheets("Actualizacion - Control de Entr") 'hoja donde se copian los datos
Valor = TrackingLabel.Value
If Valor = "" Then Exit Sub
'
Set b = h1.Columns("A").Find(Valor, lookat:=xlWhole)
If Not b Is Nothing Then
MensajeroLabel.Caption = h1.Cells(b.Row, "B")
ClienteLabel.Caption = h1.Cells(b.Row, "E")
ProductoLabel.Caption = h1.Cells(b.Row, "C")
TCLabel.Caption = h1.Cells(b.Row, "D")
CedulaLabel.Caption = h1.Cells(b.Row, "F")
'
fila = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
serie = WorksheetFunction.Max(h2.Range("A2:A" & fila - 1)) + 1
h2.Cells(fila, "A") = serie
h2.Cells(fila, "B") = FechaLabel.Caption
h2.Cells(fila, "C") = USERONLINE.Caption
h2.Cells(fila, "D") = MensajeroLabel.Caption
h2.Cells(fila, "E") = ClienteLabel.Caption
h2.Cells(fila, "F") = TCLabel.Caption
h2.Cells(fila, "G") = CedulaLabel.Caption
h2.Cells(fila, "H") = EstatusLabel.Value
h2.Cells(fila, "I") = TrackingLabel.Value
Else
blog = Error
MsgBox "Tracking no encontrado", vbExclamation, blog
End If
TrackingLabel = Empty
End Sub

'Verificacion de usuario editor

Private Sub UserForm_Initialize()

USERONLINE.Caption = Worksheets("BD").Range("G2").Value
FechaLabel = Format(Date, "DD/MM/YYYY")

End Sub

1 respuesta

Respuesta
1

Es difícil interceptar un error de automatización pues posiblemente está relacionado con alguna librería inherente al lector que has instalado.

Lo que si me parece detectar del código que has colgado es lo siguiente:

  1. Está ligado a un evento, el cambio del control TrackingLabel (dices que es un textbox)
  2. En la última línea de este código cambias justamente el valor de TrackingLabel a Empty

Si un evento se "dispara" por el cambio de un control, y el código vuelve a cambiar el valor de ese control... el evento se va a volver a "disparar". Para eliminar este problema debes desactivar los eventos...

Cambiar:

TrackingLabel = Empty

por:

Application.EnableEvents=False

TrackingLabel = Empty

Application.EnableEvents=True

No se si eso ayude en algo o no... pero igual deberías hacer ese cambio.

Cuando un código está en un módulo de hoja o módulo de formulario, Excel no es muy bueno para detectar la línea que genera el error. Si el código está en un módulo común sería mas sencillo.

SUGERENCIA:

Despues de corregir lo que te digo, si aun no funciona... Haz una copia (con otro nombre) de la macro en un módulo. En el formulario inserta un botón que lo único que haga sea llamar a esa macro "gemela".

Desactiva el evento change colocando temporalmente un Exit Sub en la primera linea

Lee el código con el lector, que se lea hacia el textbox y presiona el botón que llamara a la macro "gemela"... fíjate en que punto salta el error

Buena suerte!

¡Gracias! Por tu ayuda, bueno en verdad el problema se encontraba en si en el combobox donde seleccionaba los estatus, no se porque razón pasaba esto pero lo sustui por 2 botton options

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas