Giúp đỡ tạo Password theo thời gian (1 người xem)

Liên hệ QC

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

hailong

Thành viên mới
Tham gia
6/1/07
Bài viết
28
Được thích
6
Nghề nghiệp
Thiết kế điện kỹ thuật
Chào cả nhà

Mình muốn tạo Password theo thời gian:

VD: từ ngày 1 -> ngày 10 hàng tháng dùng PASS: ABC
từ ngày 11 -> ngày 20 hàng tháng dùng PASS: DEF
từ ngày 21 -> ngày 31 hàng tháng dùng PASS: GHI

Rất mong cả nhà giúp đỡ . Cám ơn.

Chúc GS vui vẻ}}}}}
 
To HaiLong
Cách thì không phải không có nhưng pass thay đổi như vậy đôi khi mình cũng hỏng nhớ nổi đâu. Hơn nữa tạo PW thế nào đi nữa (nói chi là dùng VBA) thì tuyệt đối không an toàn.

TDN
 
tedaynui đã viết:
To HaiLong
Cách thì không phải không có nhưng pass thay đổi như vậy đôi khi mình cũng hỏng nhớ nổi đâu. Hơn nữa tạo PW thế nào đi nữa (nói chi là dùng VBA) thì tuyệt đối không an toàn.

TDN

To tedaynui
Cám ơn bạn đã quan tâm. Do yêu cầu công việc ,nên mình mới làm như vậy.
Rất mong sự giúp đỡ của bạn.

Hai long
 
Đây chỉ là gợi ý. Bạn dùng 1 sheet nào đó để lưu Password. Ví dụ bạn dùng ô A1 đến A3 để lưu PW. Sau đó, Che cột A rồi Protect Sheet này lại và cho sheet này Visible = very hidden (để giấu không cho người dùng thấy PW). Bạn thử test đoạn code sau xem PW có theo yêu cầu không nhé
PHP:
Sub PW()
Dim Ngay As Integer
Ngay = Day(Now())
Select Case Ngay
    Case Is < 11: MsgBox Sheet1.Range("A1")
    Case Is < 21: MsgBox Sheet1.Range("A2")
    Case Is > 20: MsgBox Sheet1.Range("A3")
End Select
End Sub

Diễn đạt hơi lòng vòng, hy vọng bạn hiểu.
Tuy nhiên cách này không an toàn tí nào, hi hi
TDN
 
tedaynui đã viết:
Đây chỉ là gợi ý. Bạn dùng 1 sheet nào đó để lưu Password. Ví dụ bạn dùng ô A1 đến A3 để lưu PW. Sau đó, Che cột A rồi Protect Sheet này lại và cho sheet này Visible = very hidden (để giấu không cho người dùng thấy PW). Bạn thử test đoạn code sau xem PW có theo yêu cầu không nhé
PHP:
Sub PW() Dim Ngay As Integer Ngay = Day(Now()) Select Case Ngay Case Is < 11: MsgBox Sheet1.Range("A1") Case Is < 21: MsgBox Sheet1.Range("A2") Case Is > 20: MsgBox Sheet1.Range("A3") End Select End Sub
Diễn đạt hơi lòng vòng, hy vọng bạn hiểu. Tuy nhiên cách này không an toàn tí nào, hi hi TDN
Chào Bác tedaynui, Bác có cách nào gán pass theo t/gian này cho VBAProject password không (lock for viewing)? Thanks
 
Lần chỉnh sửa cuối:
Duong gia đã viết:
Chào Bác tedaynui, Bác có cách nào gán pass theo t/gian này cho VBAProject password không (lock for viewing)? Thanks
Chào bạn,
Mình không làm được. Nếu có được hay chăng thì phải nhờ VB thôi nhưng mình nghĩ cũng không đơn giản đâu à nha.

Cảm nghĩ cá nhân : Thật ra, những file mình làm hiện giờ chẳng Protect gì cả vì đôi khi mất 1 vài ngày để Protect (viết code lung tung) nhưng gặp người cố tình thì chỉ mất không quá 1 vài phút là Cr*ck xong. Nên nếu thấy được thì Share, còn ngược lại thì.. thôi cho chắc ăn lại không mất thì giờ vì nó. Bảo mật của Excel lỏng lẽo lắm ! hi hi

TDN
 
PasWord đổi hàng ngày cũng được, nhưng để cho vui thôi:

PHP:
 Option Explicit

Private Sub Workbook_Open()
 Dim PassWord As String
 
 PassWord = PasswordByDay(Date)
 Cells(65432, 26) = PasswordByDay()
 
 PassWord = InputBox("HAY NHAP MA:")
 If PassWord <> PasswordByDay() Then
    ActiveWorkbook.Save:     Application.Quit
 End If
End Sub


Mã:
[B]Function PasswordByDay(Optional Dat As Date) As String[/B]
 Dim StrC As String, Chu As String
 Dim iJ As Byte
 
 If Dat = 0 Then Dat = Date
 StrC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 iJ = (Year(Dat) - 2000) \ 3
 Chu = Mid$(StrC, iJ, 1)
 iJ = (iJ Mod 3) * 12 + Month(Dat)
 Chu = Chu & Mid$(StrC, iJ, 1)
 iJ = Day(Dat) + 1
 Chu = Chu & Mid$(StrC, iJ, 1)
     PasswordByDay = Chu
 
[B]End Function[/B]
 
tedaynui đã viết:
Chào bạn, Mình không làm được. Nếu có được hay chăng thì phải nhờ VB thôi nhưng mình nghĩ cũng không đơn giản đâu à nha. Cảm nghĩ cá nhân : Thật ra, những file mình làm hiện giờ chẳng Protect gì cả vì đôi khi mất 1 vài ngày để Protect (viết code lung tung) nhưng gặp người cố tình thì chỉ mất không quá 1 vài phút là Cr*ck xong. Nên nếu thấy được thì Share, còn ngược lại thì.. thôi cho chắc ăn lại không mất thì giờ vì nó. Bảo mật của Excel lỏng lẽo lắm ! hi hi TDN
Bác bi quan quá, phải nổ lưc chứ. Tôi rất hiểu cái "Cảm nghĩ cá nhân " của Bác. Nhưng khổ nỗi những cái mà mình không muốn share thì họ lại rớ vào, còn cái mình share thì không, càng giấu họ càng tò mò. Nói như bác cũng không chắc ăn tí nào, phí công sức quá (Ý mình là bảo mật những thứ cần thiết tại nơi mình sử dụng chứ không phải trên GPE này). Chắc hẳn phải có giải pháp nào chứ Bác. Thôi chào Bác, cám bác rất nhiều. Chúc Bác mùa giáng sinh dzui dzẻ.
 
Lần chỉnh sửa cuối:
Bức xúc quá mới viết.

tedaynui đã viết:
Cảm nghĩ cá nhân : Thật ra, những ....
TDN
Em đọc thấy cảm nghĩ cá nhân của bác tedaynui và cộng với cách tạo chương trình đăng nhập của bác SA_DQ + với trính thông minh bé nhỏ của mình đã tạo được 90% chương trình chỉ còn phải sữa đổi một chút nữa là thành công, mong các bác hỗ trợ cho xong cái "Ách tắc" này. Em gửi file đính kèm đây mong các bác giúp giùm.

Nó chỉ còn 1 cái là cái cột "Password chạy" nó cứ bị #N/A hoài không làm cho nó ổn định được.
Bác chỉ cần chỉnh sửa lại cho phần pass (trong phần Insert -> Name -> Define... -> pass) là ở ô Sheet1!$B$3 và vào trong VB xóa đi cái Label: Khang Hy là hoàn tất. Nếu nó chạy được rồi thì trước khi lưu lại bác chỉ cần qua Sheet2 rồi bấm nút Save thì ngay cả chương trình dò Password có bản quyền củng phải bó tay vì nó chẳng biết bác đặc cái vị trí "pass" ở đâu mà dò. Nhớ giúp giùm nha! Em đang chờ máy đó.
À, các nếu thấy có dở cũng đừng chê cười nghe, cứ tự nhiên sử đổi để ngày một tốt đẹp hơn.

Password: Khang Hy

----------------------------------
Hạnh phúc không đến với ta dễ dàng
Người biết kiên trì mới thành công
 

File đính kèm

Cái cột Password chạy ấy sao bạn ko làm đơn giãn hơn... 1 cell duy nhất:
Mã:
=INDEX($J$2:$J$10,INT(RAND()*9+1),1)
Bạn điền công thức này vào và chỉ cần 1 cột phụ duy nhất là cột J mà thôi... còn lại bõ hết... Mỗi lần mở file thì cell này sẽ thay đỗi.. thậm chí chỉ cần bấm F9 1 phát nó đã đỗi thành cái khác rồi...
Mà nè... Pass này nếu tôi mở file mà Disable macro thì sao?
Hi... hi...
ANH TUẤN
 
Vậy anh nghĩ sao về cái PassChange của em. Cho xin chút ý kiến đi.
 
hauomdldgh đã viết:
Em đọc thấy cảm nghĩ cá nhân của bác tedaynui và cộng với cách tạo chương trình đăng nhập của bác SA_DQ + với trính thông minh bé nhỏ của mình đã tạo được 90% chương trình chỉ còn phải sữa đổi một chút nữa là thành công, mong các bác hỗ trợ cho xong cái "Ách tắc" này. Em gửi file đính kèm đây mong các bác giúp giùm.

Nó chỉ còn 1 cái là cái cột "Password chạy" nó cứ bị #N/A hoài không làm cho nó ổn định được.
Bác chỉ cần chỉnh sửa lại cho phần pass (trong phần Insert -> Name -> Define... -> pass) là ở ô Sheet1!$B$3 và vào trong VB xóa đi cái Label: Khang Hy là hoàn tất. Nếu nó chạy được rồi thì trước khi lưu lại bác chỉ cần qua Sheet2 rồi bấm nút Save thì ngay cả chương trình dò Password có bản quyền củng phải bó tay vì nó chẳng biết bác đặc cái vị trí "pass" ở đâu mà dò. Nhớ giúp giùm nha! Em đang chờ máy đó.
À, các nếu thấy có dở cũng đừng chê cười nghe, cứ tự nhiên sử đổi để ngày một tốt đẹp hơn.

Password: Khang Hy
+ Thứ nhất bạn nên thêm 0 vào tham số cuối của Vlookup, nhằm tìm cho chính xác lun:
VD ở ô A2 (sau đó copy cho các ô khác của cột này nhé):
PHP:
=VLOOKUP(A2,$I$2:$J$10,2,0)

+Thứ 2, hàm tra ko ổn định (bị #N/A) vì khi đó ko có số tra -

* ah tôi vừa xem lại thì là do hàm RANK lấy số thứ tự sắp xếp trùng, để tránh trường hợp này bạn sửa lại như sau ở ô L2 (sau đó copy cho các ô khác của cột này nhé)
ô L2:
PHP:
=RANK(L2,$L$2:$L$10,1)+COUNTIF($L$2:L2,L2)-1


xem thêm: do nguyên nhân bạn tạo số ngẫu nhiên nhưng ko có hoặc bị trùng hi hi. Bạn có thể tham khảo cách tạo 10 số ngẫu nhiên không trùng tại topic sau:
http://www.giaiphapexcel.com/forum/showthread.php?t=6961


bạn hoàn thiện lại xem sao?
 
Lần chỉnh sửa cuối:
Em đã tạo lại theo cách của bác anhtuan trang #10 nhưng vẩn gặp trường hợp trùng nhau.
Còn cách của bác tigertiger ở trang #15#27 cũng bị toi luôn. Vẫn không cho nó tạo vị trí ngẩu nhiên được. Mong bác giúp thêm. Dùng VBA cũng được.
 

File đính kèm

  • hinh.jpg
    hinh.jpg
    47.9 KB · Đọc: 25
  • hinh2.jpg
    hinh2.jpg
    27.2 KB · Đọc: 17
oh, bạn có đọc kỹ bài #12 của tôi ko nhỉ:

+ Thứ nhất bạn nên thêm 0 vào tham số cuối của Vlookup, nhằm tìm cho chính xác lun:
VD ở ô A2 (sau đó copy cho các ô khác của cột này nhé):
PHP Code:
=VLOOKUP(A2,$I$2:$J$10,2,0)



+Thứ 2, hàm tra ko ổn định (bị #N/A) vì khi đó ko có số tra -

* ah tôi vừa xem lại thì là do hàm RANK lấy số thứ tự sắp xếp trùng, để tránh trường hợp này bạn sửa lại như sau ở ô L2 (sau đó copy cho các ô khác của cột này nhé)
ô L2:
PHP Code:
=RANK(L2,$L$2:$L$10,1)+COUNTIF($L$2:L2,L2)-1


bạn làm như vậy nhé sẽ được tigertiger thử rùi,
còn việc lấy và chương trình dò password:
hình như đoạn này ngược thì phải
bạn viết Range("pass")=Passchange
phải ngược lại chứ: Passchange=Range("pass")

thế nhé thử xem sao???
 
Em thử lại rồi thì cũng bị một chút ảnh hưởng chắc do quá trình đếm nhiều lần trong một trang chăng!
Em dùng cách củ của anh lại được. Không hiểu sao nó lại chịu. Không biết tại sao nữa?
Còn anh viết:
Mã:
Range("pass")=Passchange
Dù có đổi qua đổi lại củng vậy thôi vì củng chỉ là dấu bằng ở giữa mà. Chỉ có cách nạp dử liệu nào trước thôi thì ảnh hưởng gì. Trong khi gửi liệu chỉ có một. Cái quan trọng là dữ liệu nó được sắp xếp giống nhau cơ hổng chừng còn bị lỗi nữa.

Ấy, chết! Em xin lỗi nghe. Em không muốn phê phán anh trên diễn đàn đâu. Nhưng em chỉ nêu ý kiến riêng thôi! Mong anh thông cảm nha! Sory...
-------------

Mà quên nữa vẫn còn một chổ nữa. Nếu muốn tạo cột "Password Chạy" có nhiều hơn mười dòng thì cách này chỉ làm tạm thời thôi. Làm sao đây?

Đừng ai nghĩ dùng cách của em mà nhân hai cột A và B lên cho nhiều thì được đâu à nghe. Vì khi nó nhiều thì có thể làm cho máy bạn chạy rất chậm không nói gì còn có thể bị đứng luôn đó. Máy còn phải dùng để tính các bảng tính tài liệu công ty nữa nên đây không phải là ý kiến hay đâu.
Hiện nay bảng tính Excel của em còn đạng bị treo luôn rồi nè. Xin hướng giải đáp khác được không?
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
hauomdldgh đã viết:
Đừng ai nghĩ dùng cách của em mà nhân hai cột A và B lên cho nhiều thì được đâu à nghe. Vì khi nó nhiều thì có thể làm cho máy bạn chạy rất chậm không nói gì còn có thể bị đứng luôn đó. Máy còn phải dùng để tính các bảng tính tài liệu công ty nữa nên đây không phải là ý kiến hay đâu.
Hiện nay bảng tính Excel của em còn đạng bị treo luôn rồi nè. Xin hướng giải đáp khác được không?

Chậm vì bạn dùng hàm RAND() hàm này sẽ tự chạy mỗi khi có sự thay đổi hay recaculate của Workbook,

Để giải quyết vấn đề này bạn có thể xử lý chỉ thay đổi khi đóng hoặc mở file thôi -> bạn thử xem sao

Ah, còn chuyển qua chuyển lại câu lệnh Range("pass")=Passchange vấn thế là do thuật toán của bạn đó còn:
Range("pass")=Passchange (như bạn viết)
khác xa nhiều với
Passchange=Range("pass")
cái này dễ hỉu ko phải tranh luận gì cả đâu nhì vào thấy ngay,
 
Vậy theo anh em phải chỉnh sửa thuật toán thế nào để tốt hơn. Mong giúp đở, em mới học qua diễn đàn mới có vài ngày mà làm được vậy là tuyệt lắm rồi đó. Lúc làm em còn tưởng là phải bỏ cuộc cơ, giờ thì đã gấn hoàn thiện rồi nhưng em cũng cạn máu luôn rồi. Giờ em cũng chẳng còn biết phải dùng gì nửa!!!!
À, còn mục #18 thì sao anh? Xin giúp giùm đi. Em Thanhks nhiều mà.
 
Thôi được em chịu thua, cứ cho như anh nói về cái Passchange=Range("pass") này là đúng rồi! OK.
Nhưng em xóa cả cái Module đi nó vẫn hoạt động bình thường thì có gì ảnh hưởng đến đâu. ha...ha...
Thì ra đi một vòng lớn lại rồi lại về nhà!
Đúng là có thử mới biết mình sai.
 

File đính kèm

Chào bạn,
Cảm nghĩ cá nhân : Thật ra, những file mình làm hiện giờ chẳng Protect gì cả vì đôi khi mất 1 vài ngày để Protect (viết code lung tung) nhưng gặp người cố tình thì chỉ mất không quá 1 vài phút là Cr*ck xong. Nên nếu thấy được thì Share, còn ngược lại thì.. thôi cho chắc ăn lại không mất thì giờ vì nó. Bảo mật của Excel lỏng lẽo lắm ! hi hi

TDN
Mình thấy Excel cũng mạnh về bảo mật lắm đó. Mình có 1 File lược lặt trên mạng không biết họ làm gì mà mình dùng đủ mọi cách cũng không thể mở được VBA. Gởi anh Tedaynui xêm có bảo mật của nó có lỏng lẽo không?
File 1: Lam sao UnLock VBA.xls , lock VBA nhưng cho nhìn thấy các sheet và module (cái này hay ha nghen. nhưng ko biết làm sao đuoc nhu vậy)
File 2: Project Unviewable.xls lock 1 cục luôn, không nhìn thấy gì luôn.
 

File đính kèm

File Project Unviewable.xls là mình làm cho nó Unviewable, nhưng mình không biết cách để giải mã nó trở lại bình thường. Mà bạn đã làm được (:clap2::clap2: thật khâm phục, khâm phục!

File Lam sao UnLock VBA.xls thì vẫn chưa giải mã được bạn a...VBA vẫn chưa hiện lên. (File nay bên trong không có nội dung gì chỉ có cái là bảo vệ VBA chơi, mới ác chứ)

Thanks. thân
 
Lần chỉnh sửa cuối:
Quy định của diễn đàn chỉ cho phép chỉ cách làm khóa chứ không cho phép chỉ cách mở khóa bạn ơi! Bạn lên Google gõ từ khóa Unviewable rồi tìm sẽ có đấy! Bác OverAC ơi! Nên khóa topic này lại thôi! Kẻo lại phải trả lời những câu hỏi như thế này thôi! (Xóa dùm em dòng này luôn!) Thân.
 
Lần chỉnh sửa cuối:
Mình thấy Excel cũng mạnh về bảo mật lắm đó. Mình có 1 File lược lặt trên mạng không biết họ làm gì mà mình dùng đủ mọi cách cũng không thể mở được VBA. Gởi anh Tedaynui xêm có bảo mật của nó có lỏng lẽo không?
File 1: Lam sao UnLock VBA.xls , lock VBA nhưng cho nhìn thấy các sheet và module (cái này hay ha nghen. nhưng ko biết làm sao đuoc nhu vậy)
File 2: Project Unviewable.xls lock 1 cục luôn, không nhìn thấy gì luôn.
Vấn đề này đã bàn rất nhiều. Bạn có thể tham khảo bài viết rất hay của ttphong

TDN
 
Quy định của diễn đàn chỉ cho phép chỉ cách làm khóa chứ không cho phép chỉ cách mở khóa bạn ơi!

1. Thành thật Sorry GPE ...
2. Files của bạn hauomdldgh làm. Password mà chạy lung tung như vậy gây khó khăn cho người khác, nhưng cũng là trở ngại cho chính người lập trình.
3. Theo mình để password thay đổi theo thời gian và chỉ nhưng ai được mình cung cấp Password tức thì đăng nhập được còn sau đó 1 times thì sẽ không đăng nhập file được:
Ý tưởng là thế này: Trong VBA tạo 1 password XXyyZZ
Ví dụ khi mở file ta nhìn vào góc dưới bên phải màng hình (Thanh Taskbar) thấy time là 08:16
XX là một mã cố định do ta tạo ra. VD: XX = 23
yy là số phút hiện hành của hệ thống cộng 1 VD: yy +1 = 17
ZZ là số giờ hiện hàng của hệ thống trù 1 VD: ZZ -1 = 07
=> Password mở file lúc 08:16 là 231707 Cái này thì đó ai mà mở được File (chỉ có người lập ra nó thì lúc nào cũng mở được)
Trên phương án này thì có thể làm được với các hàm lấy giờ, lấy phút.... Nhưng mình chưa ra sản phẩm, Bạn nào giup mình với...

Suy nghĩ cá nhân: Mình chỉ muốn biết là file "Lam sao UnLock VBA.xls" (File không có dữ liệu gì bên trong). Dường như không thể mở đươc VBA. Thanks GPE
 
Lần chỉnh sửa cuối:
Gặp lỗi (Không biết Password vẫn vào file được)

Bài #18
Thôi được em chịu thua, cứ cho như anh nói về cái Passchange=Range("pass") này là đúng rồi! OK.
Nhưng em xóa cả cái Module đi nó vẫn hoạt động bình thường thì có gì ảnh hưởng đến đâu. ha...ha...
Thì ra đi một vòng lớn lại rồi lại về nhà!
Đúng là có thử mới biết mình sai.
1. File gởi kèm của bạn, với chức năng nhập đúng Password thì mới cho vào file, nhưng với nó gặp 1 lỗi nghiêm trọng là nếu trước đó ta mở 1 file excel nào đó (sữa chữa lung tung - chưa save). sau đó mở file của bạn lên. tuy có hỏi password đăng nhập, nhưng nếu ta cancel, thì bị lỗi Debug. khi đó người ta chỉ cần stop VBA là có toàn quyền quản lý file của bạn rồi.
2. Để khắc phục lỗi này, mình nghĩ trong Code, khi nhập sai password bạn hãy cho Close file vừa mở thôi (không được dụng hàng với các file khác - khi chưa save).
3. Không biết làm được không? Các bạn làm thử xem
 

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

Back
Top Bottom