Quản lý nhập dữ liệu bằng password (2 người xem)

Liên hệ QC

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

ducleminh

Thành viên chính thức
Tham gia
3/10/07
Bài viết
66
Được thích
3
Các bạn thân mến, mình có nhu cầu muốn kiểm soát NHẬP dữ liệu tại các ô BẰNG PASSWORD. Các bạn hướng dẫn mình với nha:
VD:
ô A1 để nhập tên các user: minh, hang, dung, duc ...
Nhưng mình muốn kiểm soát bằng cách:
+ Chỉ có Hằng mới nhập được "hang"
+ Chỉ có Minh mới nhập được "minh"

(nói chung là ai muốn nhập chữ gì thì phải có QUYỀN nhập chữ đó)

(có thể kiểm soát bằng password hay phương án nào khác chẳng hạn)
Thank các bạn nhiều
 
Gì kỳ vậy bạn? Chẳng lẻ mỗi người chỉ nhập được tên của mình thôi à? Nghe có vẽ vô lý cái gì đó?
Bạn đang muốn làm gì vậy?
Thân.
 
Ý bạn có phải là mỗi người tự đăng nhập bằng pass riêng với User là tên của chính tên mình.
 
Gì kỳ vậy bạn? Chẳng lẻ mỗi người chỉ nhập được tên của mình thôi à? Nghe có vẽ vô lý cái gì đó?
Bạn đang muốn làm gì vậy?
Thân.

Ah, vì mình muốn kiểm soát ai nhập dữ liệu vào một file đó mà. Trong file đó có một ô ghi user người input. Nhưng ô đó để nhập tự do thì sao mà kiểm soát chính xác ai nhập được. Nên đó là lý do mình có nhu cầu vậy đó
 
Các bạn thân mến, mình có nhu cầu muốn kiểm soát NHẬP dữ liệu tại các ô BẰNG PASSWORD. Các bạn hướng dẫn mình với nha:
VD:
ô A1 để nhập tên các user: minh, hang, dung, duc ...
Nhưng mình muốn kiểm soát bằng cách:
+ Chỉ có Hằng mới nhập được "hang"
+ Chỉ có Minh mới nhập được "minh"

(nói chung là ai muốn nhập chữ gì thì phải có QUYỀN nhập chữ đó)

(có thể kiểm soát bằng password hay phương án nào khác chẳng hạn)
Thank các bạn nhiều
Làm sao mà máy biết được người nhập là Hằng hay Minh?
Có lẽ là bạn muốn cấp cho mỗi người 1 Password, nếu gõ đúng Password thì ô A1 sẽ nhận dữ liệu là tên người đó phải không?
Nếu đúng thì bạn tham khảo file này nhé.
 

File đính kèm

Ủa, excel có cho đăng nhập bằng pass riêng hả bạn, mình chưa hiểu ý bạn lắm ?
Có vụ này, bạn search trên diễn đàn nhé... hình như cũng nhiều lắm đó.
Nếu không dùng cách này thì máy sẽ nhận dạng người nhập vào bằng webcam ah?
 
Lần chỉnh sửa cuối:
Làm sao mà máy biết được người nhập là Hằng hay Minh?
Có lẽ là bạn muốn cấp cho mỗi người 1 Password, nếu gõ đúng Password thì ô A1 sẽ nhận dữ liệu là tên người đó phải không?
Nếu đúng thì bạn tham khảo file này nhé.

Bạn ơi, mình bấm vào ô A1 hay bất cứ ô nào cũng protect hết rồi. Unproted sheet thì ô nào cũng nhập được như nhau hết. Bạn có thể xem lại giùm mình được ko

Làm sao mà máy biết được người nhập là Hằng hay Minh?
Đúng rồi, máy ko biết được nên ý mình là:
Minh phải có pass mới nhập được chữ "minh", nhưng Minh có pass thì cũng ko nhập được chữ "hang". Như vậy là mỗi người một pass đó bạn
 
Ủa, excel có cho đăng nhập bằng pass riêng hả bạn, mình chưa hiểu ý bạn lắm ?
Bạn tham khảo file đính kèm nhé. Hoàn toàn có thể quản lý đăng nhập thông qua User và Password.
File này còn có 1 kẽ hở mà mình chưa xử lý được (không cần nhập User và Password mà vẫn truy cập được), bạn thử khám phá nhé.
 

File đính kèm

Bạn ơi, mình bấm vào ô A1 hay bất cứ ô nào cũng protect hết rồi. Unproted sheet thì ô nào cũng nhập được như nhau hết. Bạn có thể xem lại giùm mình được ko
Thì bạn đừng Unprotect sheet đi chứ. Bạn cứ thử Protect lại với Pass "abc" rồi chọn lại ô A1 xem nào.
 
Thì bạn đừng Unprotect sheet đi chứ. Bạn cứ thử Protect lại với Pass "abc" rồi chọn lại ô A1 xem nào.

Ah, mình thấy rồi, ko biết hồi nãy dùng máy cty sao ko thấy, giờ về mới thấy ô A1 xuất hiện vậy
Cái này dùng VBA hả bạn. Chà, cái đó thì mình chưa biết nhiều rồi
Nếu được, bạn có thể hướng dẫn mình cụ thể hơn xíu để làm cái này ko ?
Thanks bạn nhiều
 
Thì bạn đừng Unprotect sheet đi chứ. Bạn cứ thử Protect lại với Pass "abc" rồi chọn lại ô A1 xem nào.

Ah, mình biết cách làm rồi, thanks bạn nha
Nhưng bạn ơi, có một vấn đề phát sinh là Dũng và Hằng sẽ biết data pass nằm ở đâu nên sẽ biết pass nhau hết. Vậy làm sao để dấu đi, và làm sao để Dũng và Hằng có thể thay đổi pass của mình?
 
Ah, mình biết cách làm rồi, thanks bạn nha
Nhưng bạn ơi, có một vấn đề phát sinh là Dũng và Hằng sẽ biết data pass nằm ở đâu nên sẽ biết pass nhau hết. Vậy làm sao để dấu đi, và làm sao để Dũng và Hằng có thể thay đổi pass của mình?
Tất nhiên là trong thực tế, bạn phải đặt vùng này ở một vị trí ẩn nào đó trên Sheet mà chỉ mình bạn (tác giả của bảng tính) biết, vị trí này có thể trong một vùng ẩn trên Sheet nhìn thấy hoặc trên một Sheet ẩn (vào VBE, đặt thuộc tính Visible cho Sheet là xlSheetVeryHidden và khoá VBAProject lại bằng mật khẩu).
Còn vấn đề các User muốn thay đổi Password của mình thì bạn có thể tạo một form đổi mật khẩu. Nhìn chung, form này tương tự như form Login: Có 1 combobox chọn User, 1 combobox chứa Password đối chiếu, 3 textbox: Pass cũ, Pass mới và Nhập lại Pass mới, 2 nút lệnh OK, Cancel. Nếu mọi thông tin nhập là hợp lệ rồi thì thay đổi giá trị tương ứng trong vùng lưu Password, đại loại như vầy nè: giả sử textbox Pass mới có tên là TxtNewPass, vùng chứa Pass của User được chọn là ô B2 của sheet "Info" thì câu lệnh thay Pass là:
PHP:
Sheets("Info").[B2]=TxtNewPass
 
Tất nhiên là trong thực tế, bạn phải đặt vùng này ở một vị trí ẩn nào đó trên Sheet mà chỉ mình bạn (tác giả của bảng tính) biết, vị trí này có thể trong một vùng ẩn trên Sheet nhìn thấy hoặc trên một Sheet ẩn (vào VBE, đặt thuộc tính Visible cho Sheet là xlSheetVeryHidden và khoá VBAProject lại bằng mật khẩu).
Còn vấn đề các User muốn thay đổi Password của mình thì bạn có thể tạo một form đổi mật khẩu. Nhìn chung, form này tương tự như form Login: Có 1 combobox chọn User, 1 combobox chứa Password đối chiếu, 3 textbox: Pass cũ, Pass mới và Nhập lại Pass mới, 2 nút lệnh OK, Cancel. Nếu mọi thông tin nhập là hợp lệ rồi thì thay đổi giá trị tương ứng trong vùng lưu Password, đại loại như vầy nè: giả sử textbox Pass mới có tên là TxtNewPass, vùng chứa Pass của User được chọn là ô B2 của sheet "Info" thì câu lệnh thay Pass là:
PHP:
Sheets("Info").[B2]=TxtNewPass

Bạn có thể vui lòng làm cho mình file mẫu được ko
Mình còn yếu nến chỉ mới đạt được trình độ là chỉnh sửa file mẫu để áp dụng cho mình thôi à
 

File đính kèm

PHP:
Sheet1.Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass

Theo mình hiểu câu này là dùng để lưu trữ pass mới vào data.
Sheet 1 là sheet chứa pass
Vậy còn:
PHP:
Cells(CbbUser.ListIndex + 2, 4)
nghĩa là gì vậy bạn
 
Mình đã làm được những dữ kiện kia
Còn dữ kiện: "thay pass cũ bằng pass mới" thì ko biết gõ code sao cho đúng

Vùng pass của mình đặt ở sheet 3 và có name là pass

Vậy mình phải viết ?

PHP:
Sheet3.Cells(CbbPass.ListIndex + 2, 4) = TxtNewPass

Hay

PHP:
Sheet3.Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass
 
PHP:
Sheet1.Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass

Theo mình hiểu câu này là dùng để lưu trữ pass mới vào data.
Sheet 1 là sheet chứa pass
Vậy còn:
PHP:
Cells(CbbUser.ListIndex + 2, 4)
nghĩa là gì vậy bạn
Bạn hiểu đúng rồi đó. Câu lệnh này dùng để lưu Pass mới vào Sheet1 tại vị trí tương ứng với User đang đăng nhập.
Còn thắc mắc của bạn: Cells(CbbUser.ListIndex + 2, 4) là ô nằm trên Sheet1 nằm tại hàng CbbUser.ListIndex + 2 và cột 4 (cột D). Mình đưa ra một mối liên hệ để bạn thấy vì sao lại phải là hàng CbbUser.ListIndex + 2: Trên Sheet, User và Pass đầu tiên nằm ở hàng 2, còn trong Combobox User thì thuộc tính ListIndex bắt đầu từ số 0, như vậy muốn có sự tương ứng thì phải lấy hàng CbbUser.ListIndex + 2 (vì 2=0+2)
Ở đây cần lưu ý là Sheet1 là tên trong VBA (CodeName) còn tên Sheet mà bạn đặt trong Excel (Name) có thể khác.
Mình đã làm được những dữ kiện kia
Còn dữ kiện: "thay pass cũ bằng pass mới" thì ko biết gõ code sao cho đúng

Vùng pass của mình đặt ở sheet 3 và có name là pass

Vậy mình phải viết ?

PHP:
Sheet3.Cells(CbbPass.ListIndex + 2, 4) = TxtNewPass

Hay

PHP:
Sheet3.Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass
"Vùng pass của mình đặt ở sheet 3 và có name là pass" nghĩa là Sheet3 của bạn có tên là Pass đúng không? Nếu đúng vậy và tên các đối tượng trong Form giống trên Form của mình thì bạn có thể sử dụng câu lệnh
PHP:
Sheet3.Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass
hoặc
PHP:
Sheets("Pass").Cells(CbbUser.ListIndex + 2, 4) = TxtNewPass
 
Cám ơn bạn nhiều nha ! Mình làm được rồi !
Có điều mình dựa trên code của bạn nên trong cái box hiện ra có tên: "Nhap Password để nhập dữ liệu"
Mình muốn thay chữ đó thì nằm ở đâu vậy bạn ?

Có thêm việc mình muốn hỏi thêm là: muốn macro chạy thì excel ở máy phải chỉnh security là low hoặc medium. Còn high trở lên thì thua. Vậy có cách nào thiết lập cho macro này mà nó có thể chạy ở tất cả các máy, cho dù máy đó chỉnh security của excel ở mức nào đi nữa ?

Cám ơn bạn vì đã tận tình chỉ giúp
 
Cám ơn bạn nhiều nha ! Mình làm được rồi !
Có điều mình dựa trên code của bạn nên trong cái box hiện ra có tên: "Nhap Password để nhập dữ liệu"
Mình muốn thay chữ đó thì nằm ở đâu vậy bạn ?

Có thêm việc mình muốn hỏi thêm là: muốn macro chạy thì excel ở máy phải chỉnh security là low hoặc medium. Còn high trở lên thì thua. Vậy có cách nào thiết lập cho macro này mà nó có thể chạy ở tất cả các máy, cho dù máy đó chỉnh security của excel ở mức nào đi nữa ?

Cám ơn bạn vì đã tận tình chỉ giúp
- Dòng Nhap Password de nhap du lieu chính là thuộc tính Caption của Userform FrmPass, bạn vào VBE, double click vào FrmPass, bạn sẽ thấy trong hộp Properties có thuộc tính này, bạn có thể thay đổi nội dung (theo mình biết thì không gõ tiếng Việt có dấu ở đây được)
- Nhận định của bạn đúng rồi đó. Chắc chắn là phải chỉnh Security là Medium hoặc Low thì mới chạy được Macro. Mình nhớ ở đâu đó trên GPE có nói đến vấn đề này, hình như là tạo một tập tin .bat can thiệp đến Regedit để chỉnh Security của Excel, phải chạy file này trước khi mở Workbook, khi đóng Workbook thì khôi phục lại Security như ban đầu. Bạn thử tìm xem nhé, thật sự vấn đề này mình chưa làm được.
 
Web KT

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

Back
Top Bottom