Cree formulario VBA para ingresar datos y con solo abrir y cerrar queda algo cargado que me desactiva la cinta cocciones

He creado un formulario VBA para el ingreso de artículos a una tabla de excel de una hoja determinada, que cuando lo abro e ingreso los datos y cierro mediante evento "Unload Me" queda cargado algo que no detecto y no me deja entrar a la cinta de occiones. Y al cerrar libro me dice Excel dejo de funcional.

1 respuesta

Respuesta

Pon aquí todo tu código de tu formulario para revisarlo.

Private Sub UserForm_Initialize()

Dim Fila, Final As Long
Dim Folio, Folio1, Iniciales As String
Dim Auto As Integer
Fila = 3

Do While Hoja8.cells(Fila, 1) <> Empty
Fila = Fila + 1
Loop
Final = Fila - 1

If Hoja8.cells(3, 1).Value = "" Then
cbo_Codigo.Value = "Art." & "01"
Else
Folio = Hoja8.cells(Final, 1)
Folio1 = Mid(Folio, 5)
Iniciales = Left(Folio, 4)
Auto = Format(Folio1 + 1, "0")
cbo_Codigo = Iniciales & Format(Auto, "00")
End If
txt_Fecha.Value = Format(Now, "dd-mm-yyyy")
End Sub

_________________________________________________________________________________

Private Sub Cbo_Articulos_Change()
Me.cbo_Articulos.Text = UCase(Me.cbo_Articulos.Text)

Dim h As Variant
Dim A As Variant
Set h = Sheets("ARTICULOS")
Set A = h.Range("B3:B1048576").Find(cbo_Articulos.Value, LookAt:=xlWhole)
If Not A Is Nothing Then
cbo_Codigo.Value = h.cells(A.Row, "A")
Else
txt_Fecha = Empty
txt_Cantidad = Empty
txt_ValorUnidad = Empty
txt_TotalCompra = Empty
txt_PrecioUventa = Empty

UserForm_Initialize

End If
End Sub

_______________________________________________________________________________________

Private Sub cbo_Codigo_Change()
Dim h As Variant
Dim A As Variant

Set h = Sheets("ARTICULOS")
Set A = h.Range("A3:A1048576").Find(cbo_Codigo.Value, LookAt:=xlWhole)
If Not A Is Nothing Then
cbo_Articulos.Value = h.cells(A.Row, "B")
txt_Fecha.Value = h.cells(A.Row, "C")
txt_Cantidad.Value = h.cells(A.Row, "D")
txt_ValorUnidad.Value = Format(h.cells(A.Row, "E"), "$ #,#0.00")
txt_TotalCompra.Value = Format(h.cells(A.Row, "F"), "$ #,#0.00")
txt_PrecioUventa.Value = Format(h.cells(A.Row, "G"), "$ #,#0.00")
End If
End Sub

_____________________________________________________________________________________________

Private Sub btn_RegistrarArticulo_Click()
Application.ScreenUpdating = False
Dim Fila As Integer
Dim Final As Integer
Dim Registro As Integer
Titulo = "ANA GABRIELA SPORT"


For Registro = 3 To 32000 'Este procedimiento no nos permite ingresar un codigo de cliente repetido
If Hoja8.cells(Registro, 2) = cbo_Codigo.Text Then
MsgBox "EL CODIGO SE ENCUENTRA REGISTRADO", vbExclamation, Titulo
Exit Sub
Exit For
End If
Next

For Fila = 3 To 32000

If Hoja8.cells(Fila, 1).Value = "" Then
Hoja8.cells(Fila, 1).Value = cbo_Codigo
Hoja8.cells(Fila, 2).Value = cbo_Articulos
Hoja8.cells(Fila, 3).Value = Format(txt_Fecha, "mm-dd-yyyy")
Hoja8.cells(Fila, 4).Value = Format(txt_Cantidad, "###")
Hoja8.cells(Fila, 5).Value = Format(txt_ValorUnidad, "$ #,#0.00")
Hoja8.cells(Fila, 6).Value = Format(txt_TotalCompra, "$ #,#0.00")
Hoja8.cells(Fila, 7).Value = Format(txt_PrecioUventa, "$ #,#0.00")

txt_Fecha = Empty
cbo_Codigo = Empty
cbo_Articulo = Empty
txt_Cantidad = Empty
txt_ValorUnidad = Empty
txt_TotalCompra = Empty
txt_PrecioUventa = Empty
'ActiveWorkbook.Save
MsgBox "ARTICULO INGRESADO CON EXITO", vbInformation, Titulo
Call UserForm_Initialize
Application.ScreenUpdating = True
Exit Sub
Exit For
End If
Next
End Sub

_____________________________________________________________________________________________

Agradezco tu ayuda!!

Veo varios problemas de programación en tu código VBA, pero antes de depurarlo.

¿Además del código del userform, tienes otros códigos en las hojas o en módulos o en el evento de ThisWorkbook?

Puedes poner aquí esos códigos.

En lo futuro, para insertar código aquí en el foro, utiliza el icono para insertar código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas