Formulario en Excel para ingresar entradas y salidas de Inventario no funciona correctamente.
Necesito ayuda con un formulario en Excel para ingresar entradas y salidas de inventario. Antes funcionaba correctamente pero ahora no realiza las entradas ni las salidas de los productos; a pesar de que no hace las cargas respectivas, si guarda en perfectamente el proceso en otra hoja que se llama "MOVIMIENTOS DE INVENTARIO". Todo lo hace a través de un botón "Aceptar". Si le doy al botón sin ningún campo llenado debería arrojarme un mensaje, pero me arroja un error: "Se ha producido el error '13' en tiempo de ejecución: No coinciden los tipos". No soy experta en Excel, por eso creo que no veo el error. Aquí les envío la macro:
Sub proceso()
ActiveSheet.Unprotect
Dim ultLinea As Long
Dim ultLineaDatos As Long
Dim codigo, descripicon, fecha, cantidad, movimiento As String
Dim busquedaFilaDatos As Range
Dim rangoBusqueda As String
Dim filaRegistro As Long
'Validación de la información esté completamente diligenciada
codigo = Sheets("INVENTARIO").Cells(7, 1)
descripcion = Sheets("INVENTARIO").Cells(7, 2)
fecha = Sheets("INVENTARIO").Cells(7, 3)
cantidad = Sheets("INVENTARIO").Cells(7, 4)
movimiento = Sheets("INVENTARIO").Cells(7, 5)
If Len(codigo) = 0 Or Len(descripcion) = 0 Or Len(fecha) = 0 Or Len(cantidad) = 0 Or Len(movimiento) = 0 Then
MsgBox "Debe ingresar todos los campos!", vbCritical, "Resultado"
Exit Sub
End If
'Asignación de valores en Movimientos
ultLinea = Sheets("MOVIMIENTOS INVENTARIO").Range("A" & Rows.Count).End(xlUp).Row
Sheets("MOVIMIENTOS INVENTARIO").Cells(ultLinea + 1, 2) = codigo
Sheets("MOVIMIENTOS INVENTARIO").Cells(ultLinea + 1, 3) = descripcion
Sheets("MOVIMIENTOS INVENTARIO").Cells(ultLinea + 1, 1) = fecha
Sheets("MOVIMIENTOS INVENTARIO").Cells(ultLinea + 1, 4) = cantidad
Sheets("MOVIMIENTOS INVENTARIO").Cells(ultLinea + 1, 5) = movimiento
'Actualizar entradas y salidas
ultLineaDatos = Sheets("INVENTARIO").Range("A" & Rows.Count).End(xlUp).Row
rangoBusqueda = "A10:A" & ultLineaDatos
Set busquedaFilaDatos = Sheets("INVENTARIO").Range(rangoBusqueda).Find(codigo, lookat:=xlWhole)
If busquedaFilaDatos Is Nothing Then
MsgBox "El código ingresado no existe", vbCritical, "Resultado"
Exit Sub
Else
filaRegistro = busquedaFilaDatos.Row
If movimiento = "ENTRADAS" Then
Sheets("INVENTARIO").Cells(filaRegistro, 5) = Sheets("INVENTARIO").Cells(filaRegistro, 5) + cantidad
Else
Sheets("INVENTARIO").Cells(filaRegistro, 26) = Sheets("INVENTARIO").Cells(filaRegistro, 6) + cantidad
End If
Sheets("INVENTARIO").Cells(filaRegistro, 6) = Sheets("INVENTARIO").Cells(filaRegistro, 26)
Sheets("INVENTARIO").Cells(filaRegistro, 7) = Sheets("INVENTARIO").Cells(filaRegistro, 5) - Sheets("INVENTARIO").Cells(filaRegistro, 6)
'Limpiar datos
Sheets("INVENTARIO").Cells(7, 1) = ""
Sheets("INVENTARIO").Cells(7, 3) = ""
Sheets("INVENTARIO").Cells(7, 4) = ""
Sheets("INVENTARIO").Cells(7, 5) = ""
MsgBox "Actualización exitosa de la información de E/S", vbInformation, "Resultado"
Sheets("INVENTARIO").Range("A7").Select
End If
ActiveSheet.Protect
End Sub