ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: qqboy1

[分享] 一个相当成熟的多用户不同权限登录系统

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-6-27 16:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真好

TA的精华主题

TA的得分主题

发表于 2005-6-28 08:33 | 显示全部楼层
以下是引用兰色幻想在2005-5-30 16:54:00的发言:

如果避免启用宏,直接进行数字签名就行了。

请问兰老师:

数字签名的操作步骤是哪样的,我也很想避开启用宏的那一提示。

TA的精华主题

TA的得分主题

发表于 2005-6-28 11:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kezhiye 朋友,參考這一貼對你很有幫助 http://club.excelhome.net/viewthread.php?tid=1333

TA的精华主题

TA的得分主题

发表于 2005-7-1 08:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢zz11353朋友

TA的精华主题

TA的得分主题

发表于 2005-7-2 20:45 | 显示全部楼层
以下是引用qqboy1在2005-6-13 19:06:00的发言: >

其实这个本来就是一个模板,你可以在里边直接修改的,可以添加工作表,和新文件一样的。

可以添加宏(最好新建模块),可以添加窗体等等,只要不破坏 "系统表"."注册表"这两张表,不要修改原有的vba关键代码就可以了。

最后修改一下“系统表”里的设置就可以了。这里用户数限定为9个,其实你可以在窗体里“用户名列表框”的属性中 “Rowsource ”的值“系统表!a2:a10”,将他改为“系统表!a2:a100”就成了99个用户了,这下肯定够用了。最多可以操作256-4张工作表。这个也已经够大了。

又学习了一招

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-7 21:07 | 显示全部楼层
以下是引用zz5151353在2005-6-28 11:59:05的发言: kezhiye 朋友,參考這一貼對你很有幫助 http://club.excelhome.net/viewthread.php?tid=1333
好文章,长见识。

TA的精华主题

TA的得分主题

发表于 2005-7-25 17:28 | 显示全部楼层

非常感谢楼主

我已经将其用到我的自动表中了,就是如何给单个工作表加保护,也就是说对单个工作表设置修改权限。现在加了保护后重新打开文件时保护就没有了,这个功能对我很重要,请楼主指点一二。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-25 20:51 | 显示全部楼层

最近有好多网友问我怎样增加用户数(突破9个用户的限制)和可操作的工作表数(突破26张工作表的限制),其实以前的帖子里我有说明,可能不清楚,我贴两个图片给大家看。

1.增加用户数量,照下图在窗体中修改。修改RowSource的值即可。改为“系统表!$A2:$A100”即为99个用户,如果还觉得不够的话,用“系统表!$A2:$A1000”啦,999个用户~~~,不过速度嘛……

2.突破工作表数量的限制,照下图在代码中修改。只需将代码中C的值改为其他大一点的值即可,最大可以为256,这样最多可以操作251张工作表,够多了吧~~~~

[此贴子已经被作者于2005-7-26 8:40:48编辑过]

一个相当成熟的多用户不同权限登录系统

一个相当成熟的多用户不同权限登录系统

一个相当成熟的多用户不同权限登录系统

一个相当成熟的多用户不同权限登录系统

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-25 21:08 | 显示全部楼层
以下是引用zz5151353在2005-6-27 9:05:51的发言: 繁體版都出現亂碼,不知道樓主能否貼出原代碼分享一下,謝謝 !!!

zz5151353朋友,代码分几个部分。

模块部分如下:

Sub 注册系统() Dim 改, 删 Dim i, j, r, c On Error Resume Next ThisWorkbook.Unprotect ("ABCacb333") Application.ScreenUpdating = False For i = 1 To Sheets.Count If Sheets(i).Name <> "注册表" Then Sheets(i).Visible = 2 Next

Static 注册次数 As Long: Dim 用户, 密码: Dim yran2 As Range: Dim yshe1 As Worksheet 用户 = UserForm1.ComboBox1.Text 密码 = UserForm1.TextBox2.Text If 注册次数 > 3 Then MsgBox "登陆错误次数超过三次,即将退出系统!": ThisWorkbook.Close: Exit Sub 注册次数 = 注册次数 + 1 Set yran2 = 系统表.UsedRange.Find("用户名称") If 用户 = "" Then MsgBox "无此用户,请通知系统维护员!": Exit Sub If yran2 Is Nothing Then MsgBox "系统表 错误,请通知系统维护员!": Exit Sub Set yran2 = yran2.EntireColumn.Find(用户) If 密码 = "" Or CStr(yran2) = "" Or 密码 <> yran2.Cells(1, 2).Text Then MsgBox "用户名或密码错误, 请重新登陆!": On Error GoTo 0: Exit Sub End If 注册次数 = 0 '----------------------------------------------------------- r = yran2.Row: c = 30

For i = 1 To Sheets.Count For j = 5 To c If Sheets(i).Name = 系统表.Cells(r, j).Text Then Sheets(i).Visible = -1 Next Next '-----------------------------------------------------------

改 = 系统表.Cells(r, 3) 删 = 系统表.Cells(r, 4) If 改 = "N" Then SheetP Else unSheetP If 删 = "N" Then ThisWorkbook.Protect ("ABCacb333")

注册表.Range("E10:F10").ClearContents

Application.ScreenUpdating = True End Sub

Sub SheetP() For i = 1 To Sheets.Count If Sheets(i).Name <> "注册表" Then Sheets(i).Protect ("ABCacb333") Next End Sub Sub unSheetP() For i = 1 To Sheets.Count If Sheets(i).Name <> "注册表" Then Sheets(i).Unprotect ("ABCacb333") Next End Sub

注册表WorkSheet代码为:

Private Sub Worksheet_Activate() ThisWorkbook.Unprotect ("ABCacb333") For i = 1 To Sheets.Count If Sheets(i).Name <> "注册表" Then Sheets(i).Visible = 2 Next ThisWorkbook.Protect ("ABCacb333") End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range) UserForm1.Show 0 End Sub

ThisWorkbook代码为:

Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Unprotect ("ABCacb333") For i = 1 To Sheets.Count If Sheets(i).Name <> "注册表" Then Sheets(i).Visible = xlSheetVeryHidden Next ThisWorkbook.Protect ("ABCacb333") End Sub

另外,窗体里还有部分代码就不贴了。

[此贴子已经被作者于2005-7-25 21:14:59编辑过]

TA的精华主题

TA的得分主题

发表于 2005-7-25 23:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学海无涯啊,谢谢楼主!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-17 17:26 , Processed in 0.042526 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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