Code khóa ô công thức trong excel 2007l (2 người xem)

Liên hệ QC

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

thangpq

Thành viên mới
Tham gia
21/9/10
Bài viết
5
Được thích
2
Hi cả nhà

Mình có một file dữ liệu cần phải khóa các ô công thức trong e xcel 2007. Mình ko biết về VBA nhưng mày mò tìm trên mạng và làm máy móc bằng cách chép đoạn code sau vào file của mình:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Locked = True Then
Me.Protect Password:="Secret"
Else
Me.Unprotect Password:="Secret"
End If
End Sub

Khi mình làm trên file xlsx (lúc chưa save) thì thử đoạn code này hoạt động được. Tuy nhiên khi save lại thì nó hiện ra cảnh báo là file xlsx ko thể chạy đoạn macro này và yêu cầu phải save file type macro enabled. Lúc đó mình thử cả hai cách như sau thì đều ko được:
1. Save sang file type xlms và copy đoạn code đó vào
2. Save sang file type xlsx

Thực ra mục đích của mình cho công việc này là:

i. Mình muốn khóa toàn bộ các ô công thức trong file báo cáo tổng hợp. tuy nhiên ko làm mất tính năng của bảng (trong e xcel 2007 có một tính năng rất mạnh về bảng như khi tab dòng cuối cùng, e xcel tự động copy công thức xuống). Tuy nhiên nếu lock theo cách thông thường e xcel ko cho phép tab xuống dòng trong bảng tự động nữa.

ii. Khi làm pivot table, mình thấy nó hay bị chỉnh sửa format mỗi khi refresh, có đọc một số tài liệu thì có hướng dẫn vào pivot option/bỏ tick "auto fit row and collumn" và tick và preseve nhưng có làm thử mà ko triệt để được, vẫn có những định dạng (subtotal) vẫn bị co lại.
Mong các bạn giúp đỡ vì file dữ liệu đã xong hết rùi mà vì người sử dụng do được quyền sửa công thức nên độ ổn định ko cao dẫn đến phải chỉnh sửa nhiều.

TIA cả nhà
 
Không phải nó không cho Save Macro, bởi vì từ phiên bản 2007 trở đi nó tách bạch nhiều dạng, nhưng căn bản là 2 dạng, một dạng đơn thuần là bảng biểu công thức, còn dạng kia có liên quan đến Macro (VBA). Vì vậy khi save lại file có Macro, bạn nên Save as type là: "Excel Macro-Enabled Workbook" như vậy sẽ save lại dễ dàng mà không bị báo lỗi.

Thân ái.
 
Không phải nó không cho Save Macro, bởi vì từ phiên bản 2007 trở đi nó tách bạch nhiều dạng, nhưng căn bản là 2 dạng, một dạng đơn thuần là bảng biểu công thức, còn dạng kia có liên quan đến Macro (VBA). Vì vậy khi save lại file có Macro, bạn nên Save as type là: "Excel Macro-Enabled Workbook" như vậy sẽ save lại dễ dàng mà không bị báo lỗi.

Thân ái.

Cảm ơn bạn, nhưng như mình nói ở trên, mình đã thử save as type e xcel Macro - Enabled workbook. Và đuổi của nó là xlsm. Nó ko báo lỗi và macro cũng ko hoạt động luôn. Nghĩa là đối với file xlsx trước khi save thì nó lock được, sau khi save thì nó báo lỗi, save as excel macro enabled thì nó ko báo lỗi nhưng ko dùng được đoạn code trên **
 
Cảm ơn bạn, nhưng như mình nói ở trên, mình đã thử save as type e xcel Macro - Enabled workbook. Và đuổi của nó là xlsm. Nó ko báo lỗi và macro cũng ko hoạt động luôn. Nghĩa là đối với file xlsx trước khi save thì nó lock được, sau khi save thì nó báo lỗi, save as excel macro enabled thì nó ko báo lỗi nhưng ko dùng được đoạn code trên **


Tôi thấy rất bình thường mà sao máy bạn lại như vậy!

Bạn xem File tôi Save nè!


P/s: Nói cho các bạn nào có ý định là khóa ô từng vùng riêng biệt, e là không hay, thà là khóa toàn sheet, ô nào cũng có chọn Locked, nếu không, theo code của bạn (vì có dòng code: Else: Me.Unprotect Password:="Secret") không cần mật mã mật khẩu gì hết tôi vẫn bỏ locked được hết. Dùng code bẻ khóa ư? Không cần, bạn chỉ cần tô khối ô bị khóa và 1 ô không bị khóa, chọn Format Cell, bỏ chọn Locked là mở khóa vô tư vùng đó!
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom