Giúp đỡ tạo Password theo thời gian (2 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

Web KT

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

Back
Top Bottom