viernes, 24 de enero de 2014

Ingreso De Existencias en Bodegas

           Ingreso De Existencias en Bodegas

 Muchas veces, existen empresas en donde los registros de los productos que ingresan se hacen de forma manual, es más, hay veces que se registran en libros de papel, en vez de utilizar las tecnologías para facilitar su identificación. Hay veces, en donde existen varias bodegas, por lo que cada bodega tiene que tener su propio registro.

 Me puse en el caso, en donde se recibe la mercadería y hay que asignarle una bodega para poder guardar los productos. Para esto, he creado un tablero, una macro que permita crear un registro de inventario. Se puede observar en la siguiente imagen:



 En este tablero, se debe indicar la bodega, el tipo de producto, e indicar el producto específico de acuerdo al tipo de producto. Además se debe indicar la cantidad ingresada y el número de factura. Luego de haber llenado estos datos, se procede a “Guardar”.

 Primero que todo cada producto tiene asociado un precio y cada registro se va guardando en la bodega correspondiente. Al apretar el botón “Guardar”, se crea un registro en una hoja con el nombre de cada bodega, en este caso existen 3, Los Leones, Irarrázaval y Quilicura.

 Por ejemplo hay un ingreso de mercaderías a la bodega de Quilicura, el tipo de productos es “Artículos”, abro la lista desplegable y tengo la opción de ingresar “Chasis” o “Negatoscopios”, elijo “Chasis”. La cantidad (3) y el número de la factura (56). Ahora pongo “Guardar” y me entrega el siguiente registro:



  Me entrega automáticamente el Costo total de los productos, la fecha de ingreso, y me crea un ID de registro, que es único por Bodega. Luego, si quiero hacer otro registro, se va poniendo bajo el registro anterior.





Los códigos de la Macro son los siguientes:

Sub guardar()

Application.ScreenUpdating = False
Sheets("Los Leones").Unprotect
Sheets("Irarrazaval").Unprotect
Sheets("Quilicura").Unprotect
Dim bodega, producto, insumo, articulo, equipo As String
Dim cantidad, precio, factura, id As Integer
Dim fecha As Date
bodega = Sheets("FormularioIngreso").Range("G3").Value
producto = Sheets("FormularioIngreso").Range("G5").Value
insumo = Sheets("FormularioIngreso").Range("G7").Value
articulo = Sheets("FormularioIngreso").Range("G9").Value
equipo = Sheets("FormularioIngreso").Range("G11").Value
cantidad = Sheets("FormularioIngreso").Range("G13").Value
'precio = Sheets("formularioIngreso").Range("G15").Value
factura = Sheets("FormularioIngreso").Range("G17").Value
Sheets("DATOS").Range("C1").FormulaR1C1 = "=TODAY()"
fecha = Sheets("DATOS").Range("C1").Value
Select Case insumo
Case "1"
insumo = "Películas"
Case "2"
insumo = "Químicos"
End Select
Select Case articulo
Case "1"
articulo = "Chasis"
Case "2"
articulo = "Negatoscopios"
End Select
Select Case equipo
Case "1"
equipo = "Reveladora"
Case "2"
equipo = "Digitalizador"
Case "3"
equipo = "Impresoras"
End Select

precio = Application.WorksheetFunction.VLookup(articulo, Sheets("DATOS").Range("A10:C20"), 3, 0) * cantidad

id = 0
Select Case bodega
Case "1"
Sheets("Los Leones").Activate
Sheets("Los Leones").Range("A1").Select
'Selection.End(xlDown).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
id = id + 1
Loop
    Select Case producto
    Case "1"
    With ActiveCell
.Value = "Insumo"
.Offset(0, 1).Value = insumo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "2"
With ActiveCell
.Value = "Artículo"
.Offset(0, 1).Value = articulo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha

.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "3"
With ActiveCell
.Value = "Equipo"
.Offset(0, 1).Value = equipo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha

.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
End Select

Case "2"
Sheets("Irarrazaval").Activate
Sheets("Irarrazaval").Range("A1").Select
'Selection.End(xlDown).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
id = id + 1
Loop
    Select Case producto
    Case "1"
    With ActiveCell
.Value = "Insumo"
.Offset(0, 1).Value = insumo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "2"
With ActiveCell
.Value = "Artículo"
.Offset(0, 1).Value = articulo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "3"
With ActiveCell
.Value = "Equipo"
.Offset(0, 1).Value = equipo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
End Select

Case "3"
Sheets("Quilicura").Activate
Sheets("Quilicura").Range("A1").Select
'Selection.End(xlDown).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
id = id + 1
Loop
    Select Case producto
    Case "1"
    With ActiveCell
.Value = "Insumo"
.Offset(0, 1).Value = insumo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "2"
With ActiveCell
.Value = "Artículo"
.Offset(0, 1).Value = articulo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
Case "3"
With ActiveCell
.Value = "Equipo"
.Offset(0, 1).Value = equipo
.Offset(0, 2).Value = cantidad
.Offset(0, 3).Value = precio
.Offset(0, 4).Value = fecha
.Offset(0, 5).Value = factura
.Offset(0, 6).Value = id
End With
End Select

End Select
Sheets("FormularioIngreso").Activate
Sheets("Los Leones").Protect
Sheets("Irarrazaval").Protect
Sheets("Quilicura").Protect

Application.ScreenUpdating = True

End Sub

No hay comentarios:

Publicar un comentario