用excel做简单进销存

对于很多规模比较小的企业或个体,没必要花成千上万的钱去搞一套规模宏大的进销存软件或erp,只要动动手,用excel也能做出自己进销存系统,用到的工具是办公软件excel,用到的知识为excel里的宏,最主要的要搞清楚用excel做简单进销存的思路。

一、建立核心表格

我们做进销存应该建立6个表,界面表,基础信息表, 入库单模板,出库单模板,进出明细表,库存汇总表  。简单的说这6是进销存的核心,当然还有各种的自定义的查询和汇总,这个可以根据自己需求来添加。

1、界面表

可以根据自已的需求和爱好来设定,主要用来实现各个表格之间的跳转

用excel做简单进销存 办公软件教程 第1张

2、基础信息表

方便后期数据的引用和提取

用excel做简单进销存 办公软件教程 第2张

3、入库单,出库单模板

入库单,出库单根据自己的需求来设定,功能都一样

用excel做简单进销存 办公软件教程 第3张

4、进出明细表

主要记录所有入库和出库的信息,是后期数据汇总,数据查询的依据,可以理解为数据表

用excel做简单进销存 办公软件教程 第4张

5、汇总表

根据进出的品种,数量来计算各自的数量

用excel做简单进销存 办公软件教程 第5张

二、建立界面表里表格跳转

我们来看下界面表的内容,我们建了几个图标的意思就是可以点击之后连接到对应的表里去

Sub 基础信息表()
Sheet2.Activate
End Sub
Sub 入库单模板()
Sheet3.Activate
End Sub
Sub 出库单模板()
Sheet4.Activate
End Sub
Sub 进出明细表()
Sheet5.Activate
End Sub
Sub 汇总表()
Sheet6.Activate
End Sub

Sub 返回()
Sheet1.Activate
End Sub

用excel做简单进销存 办公软件教程 第6张 用excel做简单进销存 办公软件教程 第7张

上面的代码是针对每个图标对应的宏,右键点击图标,选择  指定宏, 然后选择对应的  宏名称就可以了,一个一个选择完毕之后,这个界面的对应关系我们就算是做好了。

三、入库单和出库单的功能

插入一个ActiveX控件里面的,组合框,在sheet3的代码里面写入如下代码,入库单的制作,出库单和入库单一样,唯一区别就是引用供应商列和车间列的区别

1、入库单模板代码

Private Sub ComboBox1_Change()
Sheet3.Range("b2") = ComboBox1.Value
End Sub
Private Sub Worksheet_Activate()
ComboBox1.Clear
a = Sheet2.Range("g65536").End(xlUp).Row
  For b = 2 To a
  ComboBox1.AddItem Sheet2.Cells(b, 7)
  Next
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  arr = Sheet2.Range("a2:d" & Sheet2.Range("a65536").End(xlUp).Row) '选择表2数值应用区域
 If Target.Row >= 4 And Target.Row <= 55 And Target.Column = 2 Then '表3第4行到16行第2列开始
    ListBox1.List = arr
    ListBox1.Visible = True
    ListBox1.Left = ActiveCell(1, 2).Left
    ListBox1.Top = ActiveCell(1, 2).Top
   Else
   ListBox1.Visible = False
 End If
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
aa = ListBox1.ListIndex

 ActiveCell = ListBox1.List(aa, 0)
 ActiveCell.Offset(0, 1) = ListBox1.List(aa, 1)
 ActiveCell.Offset(0, 2) = ListBox1.List(aa, 2)
 ActiveCell.Offset(0, 3) = ListBox1.List(aa, 3) '引用表2第4列数据
 ActiveCell.Offset(0, -1) = ActiveCell.Row - 3
 ListBox1.Visible = False
End Sub

用excel做简单进销存 办公软件教程 第8张

2、出库单模板代码

Private Sub Worksheet_Activate()
ComboBox1.Clear
a = Sheet2.Range("j65536").End(xlUp).Row
  For b = 2 To a
  ComboBox1.AddItem Sheet2.Cells(b, 10)
  Next
End Sub
Private Sub ComboBox1_Change()
Sheet4.Range("b2") = ComboBox1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  arr = Sheet2.Range("a2:d" & Sheet2.Range("a65536").End(xlUp).Row)
 If Target.Row >= 4 And Target.Row <= 54 And Target.Column = 2 Then
    ListBox1.List = arr
    ListBox1.Visible = True
    ListBox1.Left = ActiveCell(1, 2).Left
    ListBox1.Top = ActiveCell(1, 2).Top
   Else
   ListBox1.Visible = False
 End If
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
aa = ListBox1.ListIndex

 ActiveCell = ListBox1.List(aa, 0)
 ActiveCell.Offset(0, 1) = ListBox1.List(aa, 1)
 ActiveCell.Offset(0, 2) = ListBox1.List(aa, 2)
 ActiveCell.Offset(0, 3) = ListBox1.List(aa, 3)
 ActiveCell.Offset(0, -1) = ActiveCell.Row - 3
 ListBox1.Visible = False
End Sub

用excel做简单进销存 办公软件教程 第9张

3、入库单和出库单模块代码

Sub 入库单录入()
a = Sheet3.Range("a65536").End(xlUp).Row
If Sheet3.Range("b2") = "" Then
   MsgBox "请选择录入供应商名称!"
   Exit Sub
End If
If a < 4 Then
   MsgBox "请录入数据后,再点击录入按钮!"
   Exit Sub
Else
    For c = 4 To a
       b = Sheet5.Range("b65536").End(xlUp).Row + 1
       Sheet5.Cells(b, 1) = b - 2
       Sheet5.Cells(b, 2) = Sheet3.Cells(c, 2)
       Sheet5.Cells(b, 3) = Sheet3.Cells(c, 3)
       Sheet5.Cells(b, 4) = Sheet3.Cells(c, 4)
       Sheet5.Cells(b, 5) = Sheet3.Cells(c, 5)
       Sheet5.Cells(b, 6) = Sheet3.Cells(c, 6)
       Sheet5.Cells(b, 7) = "入库"
       Sheet5.Cells(b, 8) = Sheet3.Range("b2")
       Sheet5.Cells(b, 9) = Sheet3.Range("f2")
    Next
End If
MsgBox "提取数据成功!"
  Sheet3.Range("A4:F54").ClearContents
End Sub
Sub 出库单录入()
a = Sheet4.Range("a65536").End(xlUp).Row
If Sheet4.Range("b2") = "" Then
   MsgBox "请选择领料车间名称!"
   Exit Sub
End If
If a < 4 Then
   MsgBox "请录入数据后,再点击录入按钮!"
   Exit Sub
Else
    For c = 4 To a
       b = Sheet5.Range("b65536").End(xlUp).Row + 1
       Sheet5.Cells(b, 1) = b - 2
       Sheet5.Cells(b, 2) = Sheet4.Cells(c, 2)
       Sheet5.Cells(b, 3) = Sheet4.Cells(c, 3)
       Sheet5.Cells(b, 4) = Sheet4.Cells(c, 4)
       Sheet5.Cells(b, 5) = Sheet4.Cells(c, 5)
       Sheet5.Cells(b, 6) = Sheet4.Cells(c, 6)
       Sheet5.Cells(b, 7) = "出库"
       Sheet5.Cells(b, 8) = Sheet4.Range("b2")
       Sheet5.Cells(b, 9) = Sheet4.Range("f2")
    Next
End If
MsgBox "提取数据成功!"
  Sheet4.Range("A4:F54").ClearContents
End Sub

用excel做简单进销存 办公软件教程 第10张

4、数据的汇总代码

Sub 汇总()
If Sheet5.Range("a65536").End(xlUp).Row < 3 Then
    MsgBox "没有可以汇总的数据"
    Exit Sub
Else
Dim brr()
   arr = Sheet5.Range("b3:i" & Sheet5.Range("b65536").End(xlUp).Row)
   Set d = CreateObject("scripting.dictionary")
     For a = 1 To UBound(arr)
         If Not d.exists(arr(a, 1)) Then
            n = n + 1
            d(arr(a, 1)) = n
            ReDim Preserve brr(1 To 8, 1 To n)
            brr(1, n) = n
            brr(2, n) = arr(a, 1)
            brr(3, n) = arr(a, 2)
            brr(4, n) = arr(a, 3)
            brr(5, n) = arr(a, 4)
            If arr(a, 6) = "入库" Then
               brr(6, n) = arr(a, 5)
               brr(8, n) = arr(a, 5)
            Else
               brr(7, n) = arr(a, 5)
               brr(8, n) = -arr(a, 5)
            End If
          Else
            M = d(arr(a, 1))
            If arr(a, 6) = "入库" Then
               brr(6, M) = arr(a, 5) + brr(6, M)
               brr(8, M) = arr(a, 5) + brr(8, M)
            Else
               brr(7, M) = brr(7, M) + arr(a, 5)
               brr(8, M) = brr(8, M) - arr(a, 5)
            End If
         End If
      Next
End If
Sheet6.Range("a3:h10000").ClearContents
     Sheet6.[a3].Resize(n, 8) = Application.Transpose(brr)
     MsgBox "数据提取成功!"
End Sub

用excel做简单进销存 办公软件教程 第11张

整个系统完成了,模板也是根据最简单的方式来模拟的
现实使用中可能模板各式各样的,但是万变不离其中,掌握到方法,做什么都是一个道理。

如果你有这方面的需求,可以参考:仓库系统_仓库erp

https://cnzyxz.com/820.html

用微软VBA宏语言编写的仓库系统,功能强大,结构完整。可单机使用,也可共享使用。可多部门联合操作,也可仓库部门单独使用。全面兼容微软office2003-2016版本,系统所有模块在版面设置、打印区域、打印标题行已全面设置,支持一键打印!本系统全面开源,可直接使用,也可二次开发!
用excel做简单进销存 办公软件教程 第12张