Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: dxwzm

实用的出入库存模块

  [复制链接]
发表于 2018-9-25 11:58 | 显示全部楼层
新人报道,想学习学习,谢谢!!!
回复

使用道具 举报

发表于 2018-10-3 12:42 | 显示全部楼层
回复

使用道具 举报

发表于 2018-10-6 10:37 | 显示全部楼层

Dim n As String
Set sh = Sheets("设置")
na = TextBox1.Text: ps = TextBox2.Text '取得登录窗口中的姓名与密码
If na = "" Or ps = "" Then MsgBox "未输入用户名或密码,不能登录", , "提示": Exit Sub
s = WorksheetFunction.Match(na, sh.[a:a], 0) '查找用户在A列的位置
n = sh.Cells(s, 2) '取出“设置”表中的权限密码,字符型
If n <> ps Then GoTo 10
Call 隐藏表
'检查一下“设置”表的C列及右边各格中的内容,有内容的,说明可以打开内容所指定的工作表
For i = 4 To 255
b = sh.Cells(s, i).Value
If b = 1 And sh.Cells(1, i) <> "" Then '单元格为1时,表示有权限打开这个表,就让它显示出来
Sheets(sh.Cells(1, i).Value).Visible = -1
End If
Next
Unload UserForm1 '退出窗体
Exit Sub
10:
MsgBox "姓名或密码错误,不能登录", , "提示"
End Sub
Sub 隐藏表()
TextBox1.Text = "": TextBox2.Text = ""
For i = 1 To Worksheets.Count
If Sheets(i).Name <> "登录" Then
Sheets(i).Visible = 2
Else
Sheets(i).Visible = -1 '只让“登录”表显示出来
End If
Next
End Sub
Private Sub CommandButton2_Click()
Call 隐藏表
End Sub
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
End Sub
代码中都做了注释,看不明白也不影响使用,只要粘贴上就行了。
再用鼠标双击左侧的thisworkbook模块,把下面代码粘贴上去。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call UserForm1.隐藏表
ActiveWorkbook.Save '保存当前工作簿文档
End Sub
Private Sub Workbook_Open()
Call UserForm1.隐藏表
UserForm1.Show '加载登录窗体
End Sub
再用鼠标双击左侧“设置”表模块,把下面代码粘贴上去。
Private Sub Worksheet_Activate()
'将各工作表的名字填入第一行中
For i = 2 To Worksheets.Count
Cells(1, i + 2) = Sheets(i).Name
Next
End Sub
再用鼠标双击左侧“登录”表模块,把下面代码粘贴上去。
最后给VBA加上一个保护密码,防止其他人员改动代码。
按“工具-VBA Project属性”,调出“VBA Project”属性窗口,选“保护”选项卡,按下图设置就行了。
至此就完成了整个制做过程,关闭VBA窗口回到EXCEL窗口,就可以在这个工作簿中添加你要操作的全部工作表了,注意添加的位置在“设置”工作表的右边。
使用时的注意事项:
1、在“登录”工作表中,登录窗体是自动显示的,只要输入姓名、密码正确,按“登录”按钮,就会根据“设置”表中的权限,自动打开该操作者所要操作的工作表,与他无关的表会自动隐藏。
2、当以管理员身份(本例中的“张三”)登录后,只要一打开“设置”工作表,就能自动在D1单元格及右边的各单元格中更新工作表名字。
3、任何操作者在操作完成后,要在“登录”窗体上点击“退出”按钮,以便关闭所操作的工作表。
4、为了保证登录功能正常运行,在打开工作簿时一定要启用宏。另外,为了保证工作簿在关闭时只显示“登录”工作表,会自动将其他表隐藏并保存工作簿。
补充说明:
如果想在登录窗口的密码框不显示“明文”,只显示一串星号“***”,可以用下面方法设置。
打开VBA窗口,用鼠标选中登录窗体的密码文本框textbox2,在左边“属性”窗口中找到passwordChar属性,输入一个星号就行了。
补充2
有朋友提出,在显示登录窗口时,不想手工输入“姓名”,最好用下拉框选择“姓名”,想实现这个功能,只要把登录窗口中的姓名“文本框”删除,换成一个“复合框”,再改一下代码就可以了。
1、改文本框为复合框
2、修改代码
分两步,先把原代码中的所有“TextBox1.Text”替换成“ComboBox1.Text”(提示:可以在VBA窗口中按“编辑-替换”,输入内容后选“全部替换”即可)。
再将原代码中的下面这段:
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
End Sub
替换成:
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
For i = 2 To Sheets("设置").[a65536].End(xlUp).Row
ComboBox1.AddItem Sheets("设置").Cells(i, 1).Value
Next
End Sub




回复

使用道具 举报

发表于 2018-10-9 10:17 | 显示全部楼层

回复

使用道具 举报

发表于 2018-10-12 09:54 | 显示全部楼层
哇哇哇,急需
回复

使用道具 举报

发表于 2018-10-16 10:29 | 显示全部楼层
参与/回复主题
回复

使用道具 举报

发表于 2018-10-16 20:03 | 显示全部楼层
看看
回复

使用道具 举报

发表于 2018-10-20 09:32 | 显示全部楼层
要查看本帖隐藏内容
回复

使用道具 举报

发表于 2018-10-28 17:50 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2018-10-30 22:01 | 显示全部楼层
学习学习感谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 14:17 , Processed in 0.372923 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表