Vấn đề với "Project is unviewable" với sheets

Liên hệ QC

sunwin123

Thành viên mới
Tham gia
27/11/06
Bài viết
12
Được thích
4
Thông thường với 1 file khi mở cửa sổ VB editor click vào file sẽ cảnh báo ngay "Project is unviewable". Tôi thường sử lý bằng cách mở Tool/share workbook ckick vào "allow ..." save lại, sau đó lại mở Tool/share workbook ckick vào "allow ..." 1 lần nữa là hiện cửa sổ cho nhập password. Tuy nhiên với file này lại hiện "Project is unviewable" khi click vào từng sheet. Với cách làm như trên của tôi cũng không khắc phục được. Vậy cho tôi hỏi cách dỡ bỏ và cách tạo bảo mật như vậy.
 

File đính kèm

  • Book1.zip
    11.9 KB · Đọc: 568
hii! Đây là một file đã dùng VBA để khóa....
 
Cái này hình như không phải VBA đâu. Họ dùng Macro Sheet và cái gì nữa hay sao ấy . . . ?????????
 
Chẳng lẽ không có ai giải đáp giúp tôi được hay sao.
 
giúp thì giúp được nhưng không thể công bố ra được! Nếu công bố ra tác giả mà biết thì đi hết đời.....bây giờ có luật bảo vệ rồi mà....+-+-+-+
 
Dear all,
--------
Các bạn nên hạn chế các bài viết quá ngắn, các cụm từ cảm thán gây phản cảm người đọc.
ngothehoahanoi đã viết:
hic! Bó tay.com Macro không phải là VBA ah!
Theo mình thì MrHieu đang đề cập đến Worksheet Macro4 - một dạng Macro mà GiaiphapExcel đã phân loại ở đây.

Dear sunwin123,
---------------
Theo mình vấn đề của bạn vượt quá phạm vi trao đổi của diễn đàn www.giaiphapexcel.com. Bạn có thể tìm các bài viết có liên quan ở bên dưới để tự tìm lời giải đáp cho mình hoặc có thể tham gia các diễn đàn khác, như www.h@cker.com, www.cra@cker.com chẳng hạn!
 
Chào Bạn Sunwin123
Van de cua ban chi can mo Excel roi cho Open\chon tap tin roi mo chon
Repair\ExtracData\convert to value
The la xong
 
vnn160 đã viết:
Chào Bạn Sunwin123
Van de cua ban chi can mo Excel roi cho Open\chon tap tin roi mo chon
Repair\ExtracData\convert to value
The la xong

Cẩn thận vì nó có thể làm sai lệch dữ liệu

Repair.jpg


Cái quan trọng là làm sao phá pass Macro Sheet "TroGiup" (đã bị ẩn) và vào được VBA mà vẫn không làm thay đổi dữ liệu của file. Và biết được tại sao lại làm được như vậy.
Dù sao đây cũng là một giải pháp.

Thân!
 
hic! Thực ra cả đoạn mã ở Book1 chẳng có gì cả chỉ có mấy cái liên quan đến kernel32.dll thôi. còn mấy cái macro4 không liên quan gì cả......nếu không tin thì các bạn thử xóa sheet trợ giúp xem. Thì biết liền mà
 
ngothehoahanoi đã viết:
hic! Thực ra cả đoạn mã ở Book1 chẳng có gì cả chỉ có mấy cái liên quan đến kernel32.dll thôi. còn mấy cái macro4 không liên quan gì cả......nếu không tin thì các bạn thử xóa sheet trợ giúp xem. Thì biết liền mà

Vậy thì bạn có thể nói rõ hơn về vấn đề này để mọi người còn học tập.
Thân!
 
vnn160 đã viết:
Chào Bạn Sunwin123
Van de cua ban chi can mo Excel roi cho Open\chon tap tin roi mo chon
Repair\ExtracData\convert to value
The la xong

Cám ơn bạn vnn160. Tuy nhiên với cách làm như vậy có thể bị mất dữ liệu và điều cơ bản là tôi muốn bảo mật kiểu đó bằng cách nào?
 
Cái này là viết macro trên sheet (macro4). Sau đó ẩn cột rồi protect sheet. Vì vậy muốn mở đầu tiên phải Uprotect sheet đã.
 
File dùng định nghĩa sai.

Cái này hình như không phải VBA đâu. Họ dùng Macro Sheet và cái gì nữa hay sao ấy . . . ?????????

File này bên trong không có nội dung gì cả. Macro Sheet cũng ko phải, vì xóa hết vẫn không ảnh hưởng gì.
Tôi có kiểm tra. thì được kết quả là file VBA sai định nghĩa. Nó không hề có pw cho nên ta nhìn thấy từng sheet va module. Cái này rất hay
Nếu GPE biết cách tạo ra cái sai định nghĩa này thì xem như việc bảo vệ VBA là rất an toàn đối với các chường trình phá password.
 
Code của nó đây bạn!

Mã:
Private Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
Private Declare Function GetPrivateProfileInt Lib "Kernel32" Alias "GetPriviteProfileIntA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetWindowsDirectory Lib "Kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectory Lib "Kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function Dbf_CloseAll Lib "DBF1" () As Long
Private Declare Function Dbf_OpenAsHandle Lib "DBF1" (ByVal FileN As String, ByVal Mode As Integer, ByVal DbfType As Integer, ByVal HandleF As Integer) As Integer
Private Declare Function Dbf_Close Lib "DBF1" (ByVal Hl As Integer) As Integer

Dim WinPath As String
Dim WinSysPath As String
Const MAX_PATH = 260

Function Getini(lpAppName As String, lpKeyName As String, lpDefault As String, lpFileName As String) As String
Dim ret As Long
Dim Temp As String * 256
Dim Temp1 As String
    Dim rtn As Long
    Dim buffer As String
    Dim i As Integer

buffer = Space(MAX_PATH)

rtn = GetSystemDirectory(buffer, Len(buffer))   'get the path
WinSysPath = Left(buffer, rtn)                                  'parse the path into the global string
rtn = GetWindowsDirectory(buffer, Len(buffer))
WinPath = Left(buffer, rtn)

lpDefault = ""
lpFileName = WinPath & "\dtacitt.ini"

ret = GetPrivateProfileString(lpAppName, lpKeyName, lpDefault, Temp, Len(Temp), lpFileName)

If ret = 0 Then
    Getini = ""
Else
    Temp1 = ""
    For i = 1 To Len(Trim(Temp))
        If Asc(Mid(Trim(Temp), i, 1)) <> 0 Then
        Temp1 = Temp1 & Mid(Trim(Temp), i, 1)
        End If
    Next
    Getini = Temp1
End If
End Function

Function Writeini(lpAppName As String, lpKeyName As String, lpString As String, lpFileName As String) As Integer
Dim ret As Long
    Dim rtn As Long
    Dim buffer As String

buffer = Space(MAX_PATH)

rtn = GetSystemDirectory(buffer, Len(buffer))   'get the path
WinSysPath = Left(buffer, rtn)                                  'parse the path into the global string
rtn = GetWindowsDirectory(buffer, Len(buffer))
WinPath = Left(buffer, rtn)

lpFileName = WinPath & "\dtacitt.ini"
ret = WritePrivateProfileString(lpAppName, lpKeyName, lpString, lpFileName)

If ret = 0 Then
End If
End Function
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
bang = ExecuteExcel4Macro("GET.NOTE(""R1C1"")")

If bang = "Du toan" And Getini("DUTOAN", "DTinfRUN", "", "") = "2" Then
Application.ScreenUpdating = False
Application.Run Macro:="dt972000.xla!nap_DBF"
ret = Writeini("DUTOAN", "DTinfRUN", "0", "")
Sheets("Du toan").Select
Application.ScreenUpdating = True
End If

End Sub
 
File đã mở khóa

File đã mở khóa
File đã mở khóa
File đã mở khóa
 

File đính kèm

  • Book1.7z
    7.1 KB · Đọc: 287
Web KT

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

Back
Top Bottom