Error 381 en formulario vba excel

Recurriendo a ustedes me gustaría saber por que me aparece error 381 en tiempo de ejecución y si le coloco una instrucción "error resume next " este ya no aparece mi pregunta es este error si queda aviado puedo tener problemas futuros en el diseño de mi programa gracias

Cabe anotar que el error solo aparece cuando no selecciono nada en el listbox!

Private Sub Lbl_EditaPro_Click()
Dim X As Long
On Error Resume Next
With Me.List_CargaPro
    X = .ListIndex
    Frm_ProModifica.Lbl_Id = .List(X, 0)
    Frm_ProModifica.Txt_Pro.Text = .List(X, 1)
    Frm_ProModifica.Cmb_Tipopro.Text = .List(X, 2)
    Frm_ProModifica.Cmb_Umedida.Text = .List(X, 3)
    Frm_ProModifica.Txt_Pesopro.Text = .List(X, 4)
    Frm_ProModifica.Txt_mermapro.Text = .List(X, 5)
    If Me.List_CargaPro.ListIndex < 0 Then
        MsgBox "No se ha elegido ningún registro papi", vbExclamation, "Producción"
    Else
        Frm_ProModifica.Show
    End If
End With
End Sub

2 Respuestas

Respuesta
1

Solamente en casos muy excepcionales debes utilizar la sentencia On Error.

Revisa la siguiente recomendación ahí explico qué otros problemas puedes tener.

11:23 Consejos de lo que NO debes hacer

Curso de macros. Consejos para empezar a programar. - YouTube

Sal u dos Dante Amor

Respuesta
3

Debes cambiar el orden de las instrucciones.

Primero debes preguntar si hay algún elemento seleccionado...

Por No, envías el mensaje. Por SI, se llenan los campos del formulario y se lo muestra.

Private Sub Lbl_EditaPro_Click()
Dim X As Long
With Me.List_CargaPro
    If .ListIndex < 0 Then
        MsgBox "No se ha elegido ningún registro papi", vbExclamation, "Producción"
    Else
        X = .ListIndex
        Frm_ProModifica.Lbl_Id = .List(X, 0)
        Frm_ProModifica.Txt_Pro.Text = .List(X, 1)
        Frm_ProModifica.Cmb_Tipopro.Text = .List(X, 2)
        Frm_ProModifica.Cmb_Umedida.Text = .List(X, 3)
        Frm_ProModifica.Txt_Pesopro.Text = .List(X, 4)
        Frm_ProModifica.Txt_mermapro.Text = .List(X, 5)
        Frm_ProModifica.Show
    End If
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas