Nếu thiếu SHEET quan trọng thì sẽ không thoát khỏi Excel được!

  • Thread starter quynh3684
  • Ngày gửi
Q

quynh3684

Guest
10/8/06
11
0
0
40
Hà Nôị
Các bác giỏi Excel có thể giúp em vấn đề này được không?

Trong một cơ sở dữ liệu của em có sheet danh sách khách hàng rất quan trọng, tính em cẩn thận, sợ người khác vô tình xóa mất thì hỏng ăn nên em muốn các bác giúp có cách nào mà khi người ta vô tình xóa sheet đó thì Excel sẽ không chấp nhận ghi hoặc khi thoát ra thì sẽ ở chế không ghi không ạ? Không bít đã rõ ràng chưa nhỉ?
Các bác có thể cho rằng Sheet DSKH quan trọng như thế thì sao lưu ra chục bản là xong nếu mất thì cập nhật lại vô tư, nhưng Cty em danh sách khách hàng thay đổi (chủ yếu là cập nhật thêm) hàng giờ nên em không thể làm việc đó được, vậy các bác cố giúp em nhé, thank các bác nhìu lắm.
 
Khóa học Quản trị dòng tiền
hoanghuytu

hoanghuytu

Cao cấp
7/9/06
562
13
18
40
Thanh Hóa
Bạn có thể đặt cho mình một hệ điều hành riêng, những người khác vào thì sẽ không thể thay đổi nội dung hay xóa đi được. Hoặc bạn cũng có thể vào Tools --> Options --> Protects cho toàn bộ sheet cũng được.
 
1

123HP

Guest
29/8/06
4
0
0
Hải Phòng
Cách đơn giản nhất là bạn đặt password cho sheet đó:
- Tools/protection/protect sheet (người sử dụng sẽ không xóa hay sửa được nội dung của sheet)
- Tools/protection/protect workbook (người sử dụng sẽ không xóa, copy ... được sheet)
 
E

eureka

Guest
13/5/06
8
0
0
HN
Cách của 123HP thì đúng rồi nhưng mình bổ sung thêm một chút. Đó là trước khi vào Tools/Protection thì vào Format/Cells/Protection và bỏ dấu tích ở Locked đi.
 
Q

quynh3684

Guest
10/8/06
11
0
0
40
Hà Nôị
Cám ơn các bác đã giúp đỡ nhưng cách của các bác vẫn xóa sheet vô tư và vẫn thoát ra ghi bình thường, không tin các bác thử xem.
Chẳng lẽ em viết thế mà các bác không hiểu ý em à, bác nào cao thủ giúp đi, hình như bằng một con mác cờ rô thì phải.
 
darkmoon

darkmoon

Tiền và tiền $$$
12/9/03
402
11
0
42
HCM
quynh3684 nói:
Cám ơn các bác đã giúp đỡ nhưng cách của các bác vẫn xóa sheet vô tư và vẫn thoát ra ghi bình thường, không tin các bác thử xem.
Chẳng lẽ em viết thế mà các bác không hiểu ý em à, bác nào cao thủ giúp đi, hình như bằng một con mác cờ rô thì phải.
Bạn phải hình dung thế này :
+ Nếu protect sheet thì sẽ không cho ghi vào sheet đó, chỉ khi nào unprotect sheet thì mới ghi được.
+ Protect workbook là không cho chèn thêm, xóa, copy, move... worksheet.
Với câu hỏi của bạn thì bạn phải đồng thời protect workbook và protect sheet bạn muốn bảo vệ (đương nhiên là bạn phải đặt password).
Chúc bạn tìm được câu trả lời.
 
Q

quynh3684

Guest
10/8/06
11
0
0
40
Hà Nôị
Mấu chốt vấn đề là thế này:
Một macro sẽ chạy khi thoát excel
Macro đó sẽ tìm kiếm Sheet DSKH, nếu tồn tại sheeet này thì save lại và cho thoát, còn không có thì thoát excel mà không ghi gì cả, hoặc khi người sử dụng nhấn CTRL+S để ghi tài liệu thì chạy một macro kiểm tra sheet DSKH xem có tồn tại không, nếu tồn tại thì cho ghi và nếu không tồn tại thì thoát ra không ghi.
Em hiểu nguyên lý có thể sẽ như thế, các bác giỏi lập trình giúp em với,
Bảo vệ Workbook và bảo vệ Sheet không giải quyết được vấn đề như trên các bác ạ.
 
ruadangyeu

ruadangyeu

Guest
30/9/06
143
1
0
Hanoi
my.opera.com
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim kiemtra As Boolean
For i = 1 To Worksheets.Count - 1
If Worksheets(i).Name = "dskh" Then
kiemtra = True
End If
Next
If kiemtra = False Then
SaveAsUI = False
Cancel = True
rua = MsgBox("BAN KHONG DUOC DOI TEN SHEET DSKH", vbOKOnly)
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim kiemtra As Boolean
For i = 1 To Worksheets.Count - 1
If Worksheets(i).Name = "dskh" Then
kiemtra = True
End If
Next
If kiemtra = False Then
da = MsgBox("Ban phai doi lai ten cho danh sheet DSKH", vbOKOnly, "Canh bao")
End If

End Sub
Bạn thử cho 2 thủ tục này vào là được ngay
- Thủ tục1 kiểm tra nếu không tồn tại sheet có tên là "dskh" nó sẽ không cho ghi lại sự thay đổi
- Thủ tục2 chạy khi có sự thay đổi trong worksheet nếu kô co sheet tên là "dskh" nó sẽ thông báo
Có gì liên hệ với mình thanggaynguyen@gmail.com
 
Q

quynh3684

Guest
10/8/06
11
0
0
40
Hà Nôị
ruadangyeu nói:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim kiemtra As Boolean
For i = 1 To Worksheets.Count - 1
If Worksheets(i).Name = "dskh" Then
kiemtra = True
End If
Next
If kiemtra = False Then
SaveAsUI = False
Cancel = True
rua = MsgBox("BAN KHONG DUOC DOI TEN SHEET DSKH", vbOKOnly)
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim kiemtra As Boolean
For i = 1 To Worksheets.Count - 1
If Worksheets(i).Name = "dskh" Then
kiemtra = True
End If
Next
If kiemtra = False Then
da = MsgBox("Ban phai doi lai ten cho danh sheet DSKH", vbOKOnly, "Canh bao")
End If

End Sub
Bạn thử cho 2 thủ tục này vào là được ngay
- Thủ tục1 kiểm tra nếu không tồn tại sheet có tên là "dskh" nó sẽ không cho ghi lại sự thay đổi
- Thủ tục2 chạy khi có sự thay đổi trong worksheet nếu kô co sheet tên là "dskh" nó sẽ thông báo
Có gì liên hệ với mình thanggaynguyen@gmail.com


Cám ơn bạn Rùa, bạn đã giúp mình đúng hướng nhưng mình chạy mãi mà không được, bạn chạy thử xem mình nói đúng không, Thank bạn một lần nữa nhé. (BẠN THỬ KIỂM TRA LẠI MÃ XEM)
 
Q

quynh3684

Guest
10/8/06
11
0
0
40
Hà Nôị
Em phải cảm ơn bác thế nào đây ạ, quá chuẩn rồi, hôm trước e làm không được là do em để dạng chữ hoa nên chắc máy không nhận ra nên cứ báo lỗi hoài, một lần nữa cám ơn bác nhé.
 
X

Xluan

Guest
6/8/10
1
0
0
hcm
đưa 2 thủ tục đó vô file thế nào nhỉ? mình thấy chủ đề rất hay, muốn download file về dùng thử nhưng link hỏng rồi.
 
phuyen89

phuyen89

Cao cấp
5/12/08
339
8
18
Tuy Hoà-Phú Yên
đưa 2 thủ tục đó vô file thế nào nhỉ? mình thấy chủ đề rất hay, muốn download file về dùng thử nhưng link hỏng rồi.

Thì Copy cái Code trên, mở Excel lên, nhấn Alt + F11 rồi Insert Modul, paste vào thôi.
 

Xem nhiều

Webketoan Zalo OA