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

1 respuesta

Respuesta
1

Enviame tu libro porque ta tenemos 2 consultas y no se si una respuesta no se superpondrá con la otra.

En este código noto que al inicio diligencias datos en fila 7 de hoja Inventario... pero después realizas la búsqueda a partir de A10.

Creo que sera mejor ver las hojas. Mis correos aparecen en sitio que dejo al pie... sino dejame un correo tuyo y te escribo.

Ya le envío el libro a los correos que me muestra en el sitio. Mucha gracias por responder y por su ayuda.

1 - Cuando dejas los campos vacíos, hay uno que presenta error N/A porque tiene fórmula... entonces nunca está vacío, debes contemplar que no tenga error:

2 - La instrucción de búsqueda dejala así:

Set busquedaFilaDatos = Sheets("INVENTARIO").Range(rangoBusqueda).Find(codigo, LookIn:=xlValues, lookat:=xlWhole)

3 - La declaración de variables aquí no es tan importante porque no se encuentran de modo obligatorio, pero para evitar posibles errores en otras instancias, arregla la que declaraste como 'descripicon' y en otras líneas como 'descripcion'.

Cuando termine con la otra consulta te devolveré el libro con los ajustes.

Sdos!

¡Gracias! Lo que es sobre este formulario, me funcionó a la perfección con los ajustes que me indicó. Muy agradecida de verdad. Seguiré esperando por la solución de la otra pregunta. Muchas gracias por su tiempo y por su ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas