Có cách nào bảo mật file excel chỉ định máy có thể mở (1 người xem)

Liên hệ QC

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

tueyennhi

Thành viên tích cực
Tham gia
18/10/10
Bài viết
1,192
Được thích
105
Cho em hỏi có cách nào để file excel em quy định chỉ một số máy tính chỉ định mới mở được không?
 
Mình đang làm như sau:
1. File Run.xlsm để sử dụng
2. File Setting.xlsx để lưu cài đặt
Khi mở file Run.xlsm nó sẽ tự load phần setting từ file setting.xlsx. Trong file setting này mình đã đặt chỉ những máy (application.username) nào có trong danh sách cài trước thì dữ liệu cần thiết mới hiện lên, còn lại thì ở dạng veryhidden.
Tất nhiên chỉ dùng cho công việc chứ ko phải để giấu thông tin

Ngoài ra, nếu bạn ko làm như thế thì share file theo từng user trong mạng lan cũng đc mà
 
Upvote 0
Tại sao bạn không dùng Form Đăng nhập nhỉ? Chủ động tạo User, khỏi phải kiểm tra các máy tính rồi cập nhật Computer User.
Bạn có thể chỉ kĩ hơn cho mình được không? File cũng không có gì nhiều ngoài vài chục sheet. Mình muốn chỉ máy tính nào đó mở được thôi và khi mở có pass đăng nhập. Nhập đúng thì hiện hết các sheet ra. Cái mình muốn là chỉ định máy, nghĩa là nếu chỉ cho máy A mở thì máy B có pass user cũng không mở được.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể chỉ kĩ hơn cho mình được không? File cũng không có gì nhiều ngoài vài chục sheet. Mình muốn chỉ máy tính nào đó mở được thôi và khi mở có pass đăng nhập. Nhập đúng thì hiện hết các sheet ra. Cái mình muốn là chỉ định máy, nghĩa là nếu chỉ cho máy A mở thì máy B có pass user cũng không mở được.

Oh vụ này thì lại khác vụ User đăng nhập thuần tuý rồi.
Vậy thì dùng một thủ thuật là lưu thông tin đăng nhâp vào một sheet nào đó. Ví dụ: cột [Trạng thái đăng nhập] = On
- Khi một User nào đó mở file đăng nhập, sẽ chạy code kiểmm tra trạng thái đang ON hay OFF -> cho vào hay không.
- Khi User đóng Workbook sẽ thiết lập field [Trạng thái] = OFF.
Cách làm này phải còn tính tới vụ cúp điện, file bị crashed ... thoát đột ngột nên Workbook chưa trả về trạng thái OFF. Khi đó buộc phải cầu cứu tới User Admin vô để trả lại thiết lập OFF cho Workbook. User "Admin" đăng nhập không cần phải qua code kiểm tra ON/OFF.
Ý tưởng thiết kế là vậy, bạn mày mò tiếp nhé.

Trước đây tôi cũng có bài chia sẻ vụ tạo form Đăng nhập, bạn có thể tham khảo thêm.
Link: https://www.giaiphapexcel.com/diend...nhập-và-phân-quyền-cơ-bản.148824/#post-963345
 
Upvote 0
Ở diễn đàn này đã có bài nói về dùng số serial ổ cứng để xác định máy nào được mở file rồi. Chịu khó tìm.

Chú: tôi chỉ nhắc vậy thôi, chuyện bảo mật được hay không thì tuỳ theo quan điểm mỗi người.
 
Upvote 0
Ở diễn đàn này đã có bài nói về dùng số serial ổ cứng để xác định máy nào được mở file rồi. Chịu khó tìm.

Chú: tôi chỉ nhắc vậy thôi, chuyện bảo mật được hay không thì tuỳ theo quan điểm mỗi người.
Hôm qua em cũng nghĩ mãi không nhớ, cứ nghĩ cái gì liên quan đến CPU. Cảm ơn anh nhé! Bài này em có đọc một lần. Để em mò thử.
 
Upvote 0
Hôm qua em cũng nghĩ mãi không nhớ, cứ nghĩ cái gì liên quan đến CPU. Cảm ơn anh nhé! Bài này em có đọc một lần. Để em mò thử.
Bạn tham khảo cách đọc ổ đĩa mình đang sử dụng nha. Tuy nhiên, cách bạn đang làm có thể không khoa học.
Mã:
Sub GetSerialNumber()
MsgBox Abs(MySubFso.SerialNumber)
End Sub
Function MyFso()
Set MyFso = CreateObject("Scripting.FileSystemObject")
End Function
Function MySubFso()
Set MySubFso = MyFso.GetDrive(Environ("SystemDrive"))
End Function
 
Upvote 0
Bạn tham khảo cách đọc ổ đĩa mình đang sử dụng nha. Tuy nhiên, cách bạn đang làm có thể không khoa học.
Mã:
Sub GetSerialNumber()
MsgBox Abs(MySubFso.SerialNumber)
End Sub
Function MyFso()
Set MyFso = CreateObject("Scripting.FileSystemObject")
End Function
Function MySubFso()
Set MySubFso = MyFso.GetDrive(Environ("SystemDrive"))
End Function

Mong anh cho lời khuyên?
 
Upvote 0
Vậy theo anh nên đi bước nào tốt hơn?
Tùy theo mô hình công việc mà mình sẽ linh hoạt cho phù hợp. Người ngoài không thể có ý hay hơn người trong cuộc đâu
Cách mình đang quản lý dữ liệu thế này

Mỗi người sẽ làm việc trên file của họ. Khi họ lưu file thì sẽ tự động được copy một bản lên thư mục chỉ định thông qua mạng LAN
Như vậy mỗi người sẽ có một file trên máy họ và một bản copy trên thư mục chung.
Ta sẽ viết code 1 file quản lý để tổng hợp dữ liệu từ các file này.
Ý tưởng là vậy, bạn xem coi có áp dụng được gì không
Thân ái
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn tham khảo cách đọc ổ đĩa mình đang sử dụng nha. Tuy nhiên, cách bạn đang làm có thể không khoa học.
Mã:
Sub GetSerialNumber()
MsgBox Abs(MySubFso.SerialNumber)
End Sub
Function MyFso()
Set MyFso = CreateObject("Scripting.FileSystemObject")
End Function
Function MySubFso()
Set MySubFso = MyFso.GetDrive(Environ("SystemDrive"))
End Function

cái này khi cài win lại thì số Seri của ổ cứng có thay đổi không anh Hải.
 
Upvote 0
đừng lấy ổ cài Windows là ok đó
nếu muốn ko đổi thì nên lấy Serial main đó
 
Upvote 0
Mới đổi Mainboard rồi anh. :p
vẫn cái cũ mà

Tám 1 tí
1/ Suy cho cùng Excel thì mật với mỡ cái gì ... khó nhất là Pass Open họ cũng mở ra đó chi
2/ dễ viết nhất là DLL VB6 mà nhiều người lại chê là đồ cổ ... mà hỏi lại có biết viết đồ cổ hay ko thì lại ko có biết
3/ chịu khó mò chút như mạnh thì viết Delphi đó là hàng mới thì keo khó không biết mò từ đâu và bắt đầu như thế nào
4/ có bạn Mạnh cho tài liệu Delphi hay giới thiệu link thì chê sách đó Web đó kiến thức quá cũ .... vãi kinh luôn
5/ có bạn hỏi mình nhờ Anh chỉ Delphi cho em 1 to 2 tháng gì đó là như anh ... Mình keo chỉ có qua Mỹ nó gắn cho con chíp vào não ấy cho nó nhanh
..................
-0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0-
 
Lần chỉnh sửa cuối:
Upvote 0
Hai thằng này có mao-que thả vào máy người ta để đọc được mấy cái sia-ri-ô hay sao đấy!
Vụ này là hiểu nhầm hội thoại thôi anh. "Em nói gà, anh ấy nói vịt".

Anh ấy bảo dùng thông tin Mainboard
Ý em bảo là đổi (thay) Mainboard rồi, không dùng được File nữa.
 
Upvote 0
Vụ này là hiểu nhầm hội thoại thôi anh. "Em nói gà, anh ấy nói vịt".

Anh ấy bảo dùng thông tin Mainboard
Ý em bảo là đổi (thay) Mainboard rồi, không dùng được File nữa.
Theo tôi hiểu lời bài #13 thì bạn báo cho hắn là [thớt] đã thay mainboard. Và theo lời bài #14 thì hắn ta khẳng định là [thớt] chưa thay.
Không có mao-que trong máy người ta thì làm gì biết hay vậy?
 
Upvote 0
vẫn cái cũ mà

Tám 1 tí
1/ Suy cho cùng Excel thì mật với mỡ cái gì ... khó nhất là Pass Open họ cũng mở ra đó chi
2/ dễ viết nhất là DLL VB6 mà nhiều người lại chê là đồ cổ ... mà hỏi lại có biết viết đồ cổ hay ko thì lại ko có biết
3/ chịu khó mò chút như mạnh thì viết Delphi đó là hàng mới thì keo khó không biết mò từ đâu và bắt đầu như thế nào
4/ có bạn Mạnh cho tài liệu Delphi hay giới thiệu link thì chê sách đó Web đó kiến thức quá cũ .... vãi kinh luôn
5/ có bạn hỏi mình nhờ Anh chỉ Delphi cho em 1 to 2 tháng gì đó là như anh ... Mình keo chỉ có qua Mỹ nó gắn cho con chíp vào não ấy cho nó nhanh
..................
-0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0- -0-0-0-
Chắc VB6 thì cũng tựa tựa VBA anh nhỉ. Chỉ bê nguyên code viết trên VBA excel qua rồi tạo dll?? :p
 
Upvote 0
Có hai loại sia-ri-ô
1. số thực thụ do nhà sản xuất gán cho đĩa. Mỗi đĩa chỉ có một số. Số này đi theo ổ đĩa và hơi khó thay đổi. Ngày xưa nó là số chết cứng nhưng tôi nghe nói dân chơi ghêm có cách đổi được (chưa thấy, chỉ nghe nói thôi).
2. số do Windows gán cho ổ đĩa khi ta reformat ổ. Nếu phân đĩa ra nhiều ổ con thì sẽ có nhiều số.
 
Upvote 0
Upvote 0
Upvote 0
Các anh cho em hỏi thêm ngoài nhé. Em thường xuyên sử dụng Excel. Bây giờ em học thêm về Python hay về ngôn ngữ lập trình nào đó hỗ trợ mạnh cho cái này?
 
Upvote 0
Các anh cho em hỏi thêm ngoài nhé. Em thường xuyên sử dụng Excel. Bây giờ em học thêm về Python hay về ngôn ngữ lập trình nào đó hỗ trợ mạnh cho cái này?
1/ Python thì Mạnh ko có biết ... trên GPE này cũng có nhiều thớt nói về nó mà suy cho cùng cũng chỉ nói cho vui vẻ thôi vì có thấy ai úp cái ứng dụng nào viết cho Excel = Python lên cho ta thử chơi mô ( khi nào có cái hay thì mạnh keo lại là xx )

2/ VB6 thì xài cũng tốt đó viết nó cũng rất đơn giản gần như VBA tuy nhiên có nhiều bạn chê đồ cổ mà hỏi lại có biết viết đồ cổ hay ko thì lại ko có biết ( méo biết gì mà cũng chê )

3/ Chịu khó cày mò như Mạnh đó trên GPE hỏi cái thớt Delphi ấy ... nếu Ứ thích thớt đó thì lập cái mới mà hỏi ... dốt như mạnh còn học được nữa là
nó rất hay đó cái Mạnh thích nhất là Viết DLL cho Excel chỉ 1 file duy nhất chạy thôi và Build x32 Or x64 chỉ trong 1 nốt nhạc

Viết COM , API, Ribbon cho Excel, Add-Ins + n+1

Viết DLL trong DLL ( cái này mới biết ngày hôm qua )

nếu giỏi nữa viết 1 thư viện API chuẩn thì nhiều ứng dụng khác cứ thế mà xài vvvv
...
Nếu chịu cày nữa thì học c++ Or cái gì mà khả năng của mình thấy phù hợp

Thui tự tìm hiểu nhe
 
Lần chỉnh sửa cuối:
Upvote 0
Tìm trên GPE có hết rồi
1/ code lấy BIOS Serial Number ==> chạy rất lâu
2/ Code lấy Serial main ấy chạy bay cái vèo
....
Tìm trên GPE là thấy
mình dùng code này... không biết có phải là get BIOS Serial Number không nhỉ?
Mã:
Function GetBIOSSerialNumber(Optional sHost As String = ".") As String
Dim oWMI As Object, oBIOSs As Object, oBIOS As Object
Dim sResult As String
    Set oWMI = GetObject("WINMGMTS:{impersonationLevel=impersonate}!\\" & sHost & "\root\cimv2")
    Set oBIOSs = oWMI.ExecQuery("SELECT SerialNumber FROM Win32_BIOS")
    For Each oBIOS In oBIOSs
        sResult = oBIOS.SerialNumber
         If Len(Trim(sResult)) > 0 Then Exit For
    Next
    GetBIOSSerialNumber = Trim(sResult)
    Set oBIOS = Nothing
    Set oBIOSs = Nothing
    Set oWMI = Nothing
End Function
cái này mình chỉnh lại trên cái link mà mình đã gởi bài #22
Nó chạy cái vèo luôn đó bạn!!!
 
Upvote 0
Vụ này tôi có lấy cả số mainboard, số đĩa, số cpu (không biết có lấy số bios không, quên rồi) nhưng ác nỗi là máy mua cùng lô sx thì lại giống nhau mấy con số đó. Có 1 đơn vị nọ tôi lấy từ xa qua ultraviewer có 2 cái laptop giống nhau, 2 máy bàn giống nhau ở tất cả các thông số. Mới đầu cứ tưởng họ mở nhầm máy, sau coi lại id ultraviewer thì xác định là không nhầm. Hoá ra mua cùng chỗ, máy cùng hãng cùng đời, bung cùng bản ghost luôn. Bó tay.
 
Upvote 0
Các anh cho em hỏi thêm ngoài nhé. Em thường xuyên sử dụng Excel. Bây giờ em học thêm về Python hay về ngôn ngữ lập trình nào đó hỗ trợ mạnh cho cái này?
Bạn thường xuyên xử dụng Ếch xào mà sử dụng ở mức độ nào ?
Excel + vba làm được rất là nhiều thứ có thể bạn khai thác chưa hết
Ếch xào connect Access
Ếch xào connect SQL server
Ếch xào lấy dữ liệu Wed
....
Còn bạn muốn học thêm thì nếu bạn biết căn bản ngôn ngữ nào thì học cái đó, còn không thì lựa cái nào hót hiện nay mà học.
Một số Tool trong đây viết bằng Delphi nhưng tôi bảo đảm ngoài Delphi ngôn ngữ khác viết vẫn được .... quan trọng cái tư duy của bạn
 
Upvote 0
Nếu muốn mở rộng ra thêm với Google Sheets thfi học JavaScript.
 
Upvote 0
Tại sao bạn không dùng Form Đăng nhập nhỉ? Chủ động tạo User, khỏi phải kiểm tra các máy tính rồi cập nhật Computer User.

Do là mình muốn file excel mình cho người dùng ở máy tính đó sử dụng. Khi mang sang máy tính khác sẽ không sử dụng được.
Vì muốn tránh tình trạng cấp mật mã cho một người sau đó người đó cho người khác sử dụng lung tung.
 
Upvote 0

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

Back
Top Bottom