Cần phân quyền sử dụng sheet (1 người xem)

  • Thread starter Thread starter hunglao
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

hunglao

Thành viên hoạt động
Tham gia
30/8/09
Bài viết
118
Được thích
17
Em có một vấn đề thế này cần các a/c giải quyết giùm a

em có 1 file EXEL có các sheet :1,2,3,4,5,6
và một số người dc sử dụng file đó : A,B,C,D,E....

em muốn khí A,B mở file lên thì sẽ thấy toàn bộ Sheet (1-->6)còn các người còn lại chỉ thấy được một số sheet do em quy định (1,2,3)

Vậy thì làm thế nào ạ

thank a/c
 
Em có một vấn đề thế này cần các a/c giải quyết giùm a

em có 1 file EXEL có các sheet :1,2,3,4,5,6
và một số người dc sử dụng file đó : A,B,C,D,E....

em muốn khí A,B mở file lên thì sẽ thấy toàn bộ Sheet (1-->6)còn các người còn lại chỉ thấy được một số sheet do em quy định (1,2,3)

Vậy thì làm thế nào ạ

thank a/c
Bạn tham khảo thử file đính kèm nhé.
 

File đính kèm

Mình có 2 vấn đề cần hỏi bro chút xíu
1. là mình Muốn Code này tự động chạy khi mở file mà không cần Enable Macro( tức là nhúng thẳng vào file luôn, hình như phải xài VBA phải không ạ)
2, mình muốn hiệu chỉnh code thì vào mục vào a, mình mình tìm trong cửa sổ Alt+F11 chưa thấy

thank bro nhiều a
 
Mình có 2 vấn đề cần hỏi bro chút xíu
1. là mình Muốn Code này tự động chạy khi mở file mà không cần Enable Macro( tức là nhúng thẳng vào file luôn, hình như phải xài VBA phải không ạ)
2, mình muốn hiệu chỉnh code thì vào mục vào a, mình mình tìm trong cửa sổ Alt+F11 chưa thấy

thank bro nhiều a
Câu 1: Nếu bạn Muốn Code này tự động chạy khi mở file mà không cần Enable Macro thì không thể nào được ngoại trừ bạn vào Tools\Macro, Security, chọn Low..., nhưng cách này rất nguy hiểm vì không ngăn chăn được những file chứa virus có hại.
Câu 2: Sau khi bạn bấm Alt+F11 bạn click vào cái Userform1 rồi click chuột phải, chọn View Code, muốn xem code ở Module thì double click vào đó xem thôi
 
1.cách đó mình biết nhưng mình muốn nhúng thẳng vào file luôn để tự động chạy khi mở file
giống như là viết bằng VBA phải không ạ ( sory vì mình mới học E )

2. Khi hiện ra form đăng nhập thì nếu em không chọn tên trong danh sách mà gõ lụi 1 tên nào thì nó sẽ hiện ra lỗi: sau đó nếu nhu chọn DEBUG thì sẽ hiện ra cửa sổ Alt+f11 ( cái này rất nguy hiểm, nhỡ ai không biết thì sửa lung tung là chết em luôn ạ
Câu 1: Nếu bạn Muốn Code này tự động chạy khi mở file mà không cần Enable Macro thì không thể nào được ngoại trừ bạn vào Tools\Macro, Security, chọn Low..., nhưng cách này rất nguy hiểm vì không ngăn chăn được những file chứa virus có hại.
Câu 2: Sau khi bạn bấm Alt+F11 bạn click vào cái Userform1 rồi click chuột phải, chọn View Code, muốn xem code ở Module thì double click vào đó xem thôi
 
Lần chỉnh sửa cuối:
1.cách đó mình biết nhưng mình muốn nhúng thẳng vào file luôn để tự động chạy khi mở file
giống như là viết bằng VBA phải không ạ ( sory vì mình mới học E )
Xin lỗi mình chưa hiểu ý bạn lắm, bạn có thể giải thích kỹ hơn không?
 
1.cách đó mình biết nhưng mình muốn nhúng thẳng vào file luôn để tự động chạy khi mở file
giống như là viết bằng VBA phải không ạ ( sory vì mình mới học E )

2. Khi hiện ra form đăng nhập thì nếu em không chọn tên trong danh sách mà gõ lụi 1 tên nào thì nó sẽ hiện ra lỗi: sau đó nếu nhu chọn DEBUG thì sẽ hiện ra cửa sổ Alt+f11 ( cái này rất nguy hiểm, nhỡ ai không biết thì sửa lung tung là chết em luôn ạ


1.tức là em muốn hện cái form đăng nhập lên trước khi chọn EN Mảco , sau đó rồi ENABLE macro cũng được( theo cái code của anh thì Phải enable macro thì Form mới hiện lên)
2. a xem lại câu hỏi 2 giùm em với ạ
 
Lần chỉnh sửa cuối:
1.tức là em muốn hện cái form đăng nhập lên trước khi chọn EN Mảco , sau đó rồi ENABLE macro cũng được( theo cái code của anh thì Phải enable macro thì Form mới hiện lên)
2. a xem lại câu hỏi 2 giùm em với ạ
Câu 1: Hoàn toàn không thể thực hiện theo ý bạn được.
Câu 2 : Bạn thêm dòng "On Error Resume Next" đầu thủ tục change của UserName. Nếu không cho người khác sửa code thì bạn đặt Pass. nhé. Cách làm như sau:
Nhấn Alt+F11, vào Tools\VBAproject ...., chọn gờ Protection, chọn lock project for viewing, gõ pass, xác nhận pass, ok là xong.

Bạn xem lại file nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
thank bro mình sẽ thử, có gì mình sẽ lại phiền bro nữa
 
Câu 1: Hoàn toàn không thể thực hiện theo ý bạn được.
Câu 2 : Bạn thêm dòng "On Error Resume Next" đầu thủ tục change của UserName. Nếu không cho người khác sửa code thì bạn đặt Pass. nhé. Cách làm như sau:
Nhấn Alt+F11, vào Tools\VBAproject ...., chọn gờ Protection, chọn lock project for viewing, gõ pass, xác nhận pass, ok là xong.

Bạn xem lại file nhé.

Bây giờ lại nảy sinh thêm 2 vấn đề em cần a chỉ cho em nữa

1. Em muốn khi mình đăng nhập vào rồi( đăng nhập không phải là ADMIN- tức là chỉ xem dc 1 số sheet) thì sẽ có một cách nào đó( có thể là 1 nút lệnh) để em đăng nhập lại vào quyền admin thay vì phải Reopen lại file

2. Có thể sửa lại code để khi File mở tới cửa sổ đăng nhập nếu nó phát hiện ra là người sử dụng( ví dụ HÙng, Vũ-- Tức là USer name của máy) lập tức đăng nhập liền với quyền admin còn các người còn lại sẽ đăng nhập thông qua cửa sổ đăng nhập bình thường

thank a trước
 
Help me pls.............
 
To: amesan

Yêu cầu của bạn ở file đính kèm nhé.

To: hunglao

-Câu 1 : Giải quyết theo ý bạn.
-Câu 2 : Cái này tôi đã lấy UserName đưa vào textbox có tên là txtUser, việc còn lại của bạn là lấy txtUser này để làm điều kiện đăng nhập.
 

File đính kèm

To: amesan

Yêu cầu của bạn ở file đính kèm nhé.

To: hunglao

-Câu 1 : Giải quyết theo ý bạn.
-Câu 2 : Cái này tôi đã lấy UserName đưa vào textbox có tên là txtUser, việc còn lại của bạn là lấy txtUser này để làm điều kiện đăng nhập.


a xem lại giùm em mấy vấn đề sau

1. nếu không En macro ( tức là chưa đăng nhập thì vân thấy hết 6 sheet), cái này ở file lần trước a làm cho e không bị
2. Em muốn hiệu chỉnh các tên nguyễn văn 1, nguyễn văn 2.... thì vào đâu( hình như sheet7 hay 8 gì phải không a, mà em kô mở dc 2 sheet này)
3. text box: txtuser ở đâu mà em không thấy. Không biết a có hiểu ý câu hỏi của em không nữa. Ý em là khi mà En macro để hiện lên cửa sổ đăng nhập, Nếu nó phát hiện ra đang đăng nhập trên một số máy do em quy đinh trước ( ví dụ HUngkt,vukt) thì nó sẽ tự động nhảy vào quyền amin luôn mà không cần chọn User với pass> chỉ khi làm ở trên các máy khác thì mới cần thôi a

thank a nhiều
 
a xem lại giùm em mấy vấn đề sau

1. nếu không En macro ( tức là chưa đăng nhập thì vân thấy hết 6 sheet), cái này ở file lần trước a làm cho e không bị
2. Em muốn hiệu chỉnh các tên nguyễn văn 1, nguyễn văn 2.... thì vào đâu( hình như sheet7 hay 8 gì phải không a, mà em kô mở dc 2 sheet này)
3. text box: txtuser ở đâu mà em không thấy. Không biết a có hiểu ý câu hỏi của em không nữa. Ý em là khi mà En macro để hiện lên cửa sổ đăng nhập, Nếu nó phát hiện ra đang đăng nhập trên một số máy do em quy đinh trước ( ví dụ HUngkt,vukt) thì nó sẽ tự động nhảy vào quyền amin luôn mà không cần chọn User với pass> chỉ khi làm ở trên các máy khác thì mới cần thôi a

thank a nhiều
Câu 1 : Giải quyết theo ý bạn là bạn gọi macro "dong" vào thủ tục khi mở workbook và trước khi đóng workbook và thêm đoạn code tự động lưu lại khi thoát.

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call dong
 If Me.Saved = False Then Me.Save
End Sub
Private Sub Workbook_Open()
Call dong
Call moform
End Sub

Câu 2 : Bạn vào sheet8("Username") để chỉnh thông tin người đăng nhập, Bạn lưu ý là đăng nhập với quyền "Admin" thì mới thấy sheet này.

Câu 3 : Bạn vào cửa sổ VBA chọn Userform1 thì thấy textbox này, mình đã dđặt thuộc tính cho nó khi mở form không hiển thị nân bạn không thấy textbox này khi mở form.
Cho mình hỏi thêm là bạn muốn so sánh UserName của máy hay là tên máy ? Nếu là tên máy là nó phải khác đó nhé.
Tôi gợi ý cho bạn nhé:
- Lấy txtUser làm điều kiện, nếu như khi mở form lên nó chứa text là "HUngkt,vukt" hay là gì gì đó... thì bạn gọi macro "mo" và thoát form.

Lưu Ý : Pass cho "Nguyễn Văn 1" quyền Admin là số 1
 

File đính kèm

Lần chỉnh sửa cuối:
anh có thể cho em xin nick Y hoặc Skype dc ko ạ, thank a
 
Câu 1 : Giải quyết theo ý bạn là bạn gọi macro "dong" vào thủ tục khi mở workbook và trước khi đóng workbook và thêm đoạn code tự động lưu lại khi thoát.

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call dong
 If Me.Saved = False Then Me.Save
End Sub
Private Sub Workbook_Open()
Call dong
Call moform
End Sub

Câu 2 : Bạn vào sheet8("Username") để chỉnh thông tin người đăng nhập, Bạn lưu ý là đăng nhập với quyền "Admin" thì mới thấy sheet này.

Câu 3 : Bạn vào cửa sổ VBA chọn Userform1 thì thấy textbox này, mình đã dđặt thuộc tính cho nó khi mở form không hiển thị nân bạn không thấy textbox này khi mở form.
Cho mình hỏi thêm là bạn muốn so sánh UserName của máy hay là tên máy ? Nếu là tên máy là nó phải khác đó nhé.
Tôi gợi ý cho bạn nhé:
- Lấy txtUser làm điều kiện, nếu như khi mở form lên nó chứa text là "HUngkt,vukt" hay là gì gì đó... thì bạn gọi macro "mo" và thoát form.

Lưu Ý : Pass cho "Nguyễn Văn 1" quyền Admin là số 1



1. ANh có thể cho cửa sổ EXEL vẫn xuất hiện khi form đăng nhập hiện ra được không ạ
( GIỐNG NHƯ FILE E ĐÍNH KÈM ĐÓ)
2. User name khi sử dụng EXEL đó anh
3. Cái text box đó em add tên sử dụng thế nào vậy a( xl vì em không biết viết code)
 

File đính kèm

Lần chỉnh sửa cuối:
1. ANh có thể cho cửa sổ EXEL vẫn xuất hiện khi form đăng nhập hiện ra được không ạ
2. User name khi sử dụng EXEL đó anh
3. Cái text box đó em add tên sử dụng thế nào vậy a( xl vì em không biết viết code)
Bạn chỉ cần bỏ đoạn Application.Visible = False đi khi mở form là xong.
Code như sau:
Mã:
Private Sub UserForm_Initialize()
'Application.Visible = False
Call dong
txtUser.Text = GetUserName()
txtComputerName.Text = ComputerName()
If txtUser.Text = "HUngkt" Then
Call mo
End If
Sheet7.Activate
Unload Me

End Sub
 
Bạn chỉ cần bỏ đoạn Application.Visible = False đi khi mở form là xong.
Code như sau:
Mã:
Private Sub UserForm_Initialize()
'Application.Visible = False
Call dong
txtUser.Text = GetUserName()
txtComputerName.Text = ComputerName()
If txtUser.Text = "dinh.hung" Then        
[I][COLOR="Lime"]' May cua em là dinh.hung[/COLOR][/I]
Call mo
End If
Sheet7.Activate
[B][U][COLOR="Red"]Unload Me[/COLOR][/U][/B]

End Sub

1.Code này khi em add vào thì cửa sổ đã hiện ra
nhưng khi không để chữ UNload me thì nó vẫn phải đăng nhập mặc dù em đã add "dinh.hung" vào. Còn nếu em để Unload Me thì nó báo lỗi

em có gửi file đính kèm em đã hiêuh chỉnh
a xem lại giùm e với a
2. Nếu muốn tắt mở chức năng đăng nhập này này có cách gì không a, hay là phải xóa code
thank a
 

File đính kèm

Lần chỉnh sửa cuối:
sao ko ai giúp mình nữa vậy
 
helpme please............
 
Bạn tham khảo file nhé, nếu như username là "dinh.hung" thì khi đăng nhập, nút OK hiện ra trên form đăng nhập, bạn click vào đó hoặc nhấn enter để đăng nhập, quyền đăng nhập là admin, không cần phải chọn username và pass.
Ngược lại username không phải là "dinh.hung" thì nút OK không hiện, do đó người ta phải chọn username và gõ pass vào mới đăng nhập.
Nếu bạn muốn khi khởi động form không hiện thì bạn vào cửa sổ VBA tìm và double click vào "ThisWorkbook" ở Workbook_Open() bạn xóa bỏ dòng "Call moform" đi là xong.

P/S: Lần sau bạn nhớ đừng hối như thế nhé, không phải là không ai giúp bạn mà có thể là do người ta chưa có thời gian, hoặc chưa nghĩ ra hướng giải quyết và còn nhiều nguyên nhân khác nữa ....
 

File đính kèm

Lần chỉnh sửa cuối:
thank a, e làm dc rồi
 
Chàodomfootwear
Mình đang loay hoay với việc này thì may quá đọc được bài và file của bạn.
Cho mình hỏi nếu mình muốn thêm số sheet và số người dùng thì làm thế nào? Mình cần khoảng 20 người dùng,
Cám ơn bạn nhiều.
Tang
 
Câu 1 : Giải quyết theo ý bạn là bạn gọi macro "dong" vào thủ tục khi mở workbook và trước khi đóng workbook và thêm đoạn code tự động lưu lại khi thoát.

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call dong
 If Me.Saved = False Then Me.Save
End Sub
Private Sub Workbook_Open()
Call dong
Call moform
End Sub

Câu 2 : Bạn vào sheet8("Username") để chỉnh thông tin người đăng nhập, Bạn lưu ý là đăng nhập với quyền "Admin" thì mới thấy sheet này.

Câu 3 : Bạn vào cửa sổ VBA chọn Userform1 thì thấy textbox này, mình đã dđặt thuộc tính cho nó khi mở form không hiển thị nân bạn không thấy textbox này khi mở form.
Cho mình hỏi thêm là bạn muốn so sánh UserName của máy hay là tên máy ? Nếu là tên máy là nó phải khác đó nhé.
Tôi gợi ý cho bạn nhé:
- Lấy txtUser làm điều kiện, nếu như khi mở form lên nó chứa text là "HUngkt,vukt" hay là gì gì đó... thì bạn gọi macro "mo" và thoát form.

Lưu Ý : Pass cho "Nguyễn Văn 1" quyền Admin là số 1

Cho mình xin phép làm phiên chút !
Như cái này mà mình muốn phân quyền theo tên máy tính của người sử dụng + acc đăng nhập (tức là file này nếu copy qua máy khác sẽ không sử dụng được) thì có được không ? +-+-+-+
 
Thanks bạn về bài hướng dẫn này, tuy nhiên muốn hiện lại cửa sổ form đăng nhập thì làm thế nào?
 

File đính kèm

Dear all.

ACE giúp mình file này với, mình tải file về và muốn thêm người sử dụng nhưng file bị lỗi, ACE nào giúp mình với.

Thanks all


Bạn nhấn Ctrl+F3, sẽ thấy 1 cái Name, bây giờ bạn chỉnh lại vùng tham chiếu cho nó bao hết dữ liệu của bạn.
Dữ liệu trong cái Name này sẽ được đưa vào Combobox.
Sau đó bạn vào module Add thêm thuộc tính Visible thành xlSheetVisible và xlSheetVeryHidden, lần lượt tại 2 Sub Mo, và Đóng là File có thêm thêm bao nhiêu người tùy bạn,
 
Dear bạn.

Mình đã làm như bạn hướng đãn nhưng vào user thì bị lỗi, vào addmin thì mới ok, bạn xem lại giúp mình.

Thanks.

Bạn nhấn Ctrl+F3, sẽ thấy 1 cái Name, bây giờ bạn chỉnh lại vùng tham chiếu cho nó bao hết dữ liệu của bạn.
Dữ liệu trong cái Name này sẽ được đưa vào Combobox.
Sau đó bạn vào module Add thêm thuộc tính Visible thành xlSheetVisible và xlSheetVeryHidden, lần lượt tại 2 Sub Mo, và Đóng là File có thêm thêm bao nhiêu người tùy bạn,
 

File đính kèm

Làm ơn cho hỏi cách làm đăng nhập có điều kiện cho CommandButton.
Mình có làm 1 bảng đăng nhập chia quyền theo sheet !
Sau khi đăng nhập sẽ có UserForm hiện ra - Trên đó mình làm các nút CommandButton dẫn liên kết đến các sheet !
Private Sub NhapDuLieu_Click() 'Range("Index!item").Value =
Sheets("NhapDuLieu").Select
Range("B1").Select
Unload Me
End Sub
Qua đó mình thấy:
Nếu sheet đã được mở (như quyền admin hoặc nhóm được chia quyền coi) thì được dẫn đến sheet đó luôn
Nhưng nếu không có quyền coi sheet đó thì lại bị báo lỗi !
Vậy giờ mình muốn:
- không báo lỗi
- hiện thị thông báo cho người dùng biết không có quyền truy cập và trở về menu bình thường

* Xin phép hỏi thêm điều này :
Có thể làm CommandButton thỏa điều kiện lúc đăng nhập được chia quyền mới thấy CommandButton đó được không ?
Mình chia làm 4 nhóm : Admin, Nhóm 1; Nhóm 2; Nhóm 3

Xin các bác chỉ bảo và giúp đỡ ;;;;;;;;;;;
 
Làm ơn cho hỏi cách làm đăng nhập có điều kiện cho CommandButton.
Mình có làm 1 bảng đăng nhập chia quyền theo sheet !
Sau khi đăng nhập sẽ có UserForm hiện ra - Trên đó mình làm các nút CommandButton dẫn liên kết đến các sheet !

Qua đó mình thấy:
Nếu sheet đã được mở (như quyền admin hoặc nhóm được chia quyền coi) thì được dẫn đến sheet đó luôn
Nhưng nếu không có quyền coi sheet đó thì lại bị báo lỗi !
Vậy giờ mình muốn:
- không báo lỗi
- hiện thị thông báo cho người dùng biết không có quyền truy cập và trở về menu bình thường

* Xin phép hỏi thêm điều này :
Có thể làm CommandButton thỏa điều kiện lúc đăng nhập được chia quyền mới thấy CommandButton đó được không ?
Mình chia làm 4 nhóm : Admin, Nhóm 1; Nhóm 2; Nhóm 3

Xin các bác chỉ bảo và giúp đỡ ;;;;;;;;;;;

Command Button nó có thuộc tính là Enable cho 2 giá trị là True or False.
Bạn có thể thiết lập Quền Hiện hoặc làm mờ nút lệnh này,
 
Command Button nó có thuộc tính là Enable cho 2 giá trị là True or False.
Bạn có thể thiết lập Quền Hiện hoặc làm mờ nút lệnh này,
Thanks bạn ! Nhưng như thế nút nó ẩn luôn rồi ! ngay cả quyền admin cũng ko dùng được !
Ý mình là như thế này :
Với quyền đăng nhập Nhóm 1 được thấy 2 sheet - thì sẽ dùng (hoặc thấy 2 Command Button trên Form dẫn đến 2 sheet đó)
Với quyền đăng nhập Nhóm 3 được thấy 1 sheet - thì sẽ dùng (hoặc thấy 1 Command Button trên Form dẫn đến sheet được dùng đó)
!$@!! cũng có thể bạn nói đúng ý nhưng mình chưa rõ đã thử như bạn nói nhưng nó ẩn hết với mọi đối tượng ... mong chỉ bảo
 

File đính kèm

Lần chỉnh sửa cuối:
**~**
......................................................................................................
 
Có ACE nào giúp mình vơi, mình đang cần để gửi file cho mọi người, nếu gửi từng file thì rất mất thời gian vì có trên 50 ngươif




Dear bạn.

Mình đã làm như bạn hướng đãn nhưng vào user thì bị lỗi, vào addmin thì mới ok, bạn xem lại giúp mình.

Thanks.
 
Có ai giúp mình với, Mình làm mãi nhưng vẫn không được, quyền admin thì ok, còn quyền của user thì không được.
 

File đính kèm

Xin giúp đỡ: Do điều kiện làm việc nhóm nên có nhiều người sử dụng cùng 1 file excel, tuy nhiên trừ Admin ra thì 1 người chỉ được phép nhập số liệu trên 1 vùng hoặc 1 số vùng nhất định trên 1 sheet hoặc 1 số sheet nhất định. Như vậy Admin sẽ phân quyền trên 1 sheet, sau đó người dùng đăng nhập đúng usename và pass sẽ được quyền nhập liệu tại vùng đã được phân quyền còn không sẽ thoát khỏi Excel. Cảm ơn cả nhà!
 

Bài viết mới nhất

Back
Top Bottom