Các bạn cho hỏi: Có cách nào không cho Paste vào vùng A2:C20 của Sheet1 không?- Không dùng Code Vba- Không cho paste vào vùng đó nhưng vẫn sửa thủ công được
Các bạn cho hỏi: Có cách nào không cho Paste vào vùng A2:C20 của Sheet1 không?- Không dùng Code Vba- Không cho paste vào vùng đó nhưng vẫn sửa thủ công được
Dùng VBA thì còn có thể, chứ nếu không cho dùng VBA thì nghe khó nhai à nha.
Nếu dùng VBA thì bạn có thể tham khảo topic sau: Cấm không cho copy và paste
Dùng VBA thì còn có thể, chứ nếu không cho dùng VBA thì nghe khó nhai à nha.Nếu dùng VBA thì bạn có thể tham khảo topic sau: Cấm không cho copy và paste
Không dùng được Vba vì theo yêu cầu đặc biệt ở cơ quan mình chỉ được dùng định dạng xlsx thôi. File đó sẽ copy cho nhiều nhân viên và yêu cầu họ điền 1 vùng dữ liệu = nhập thủ công - ko cho gian lận copy - paste.Vậy có giải pháp nào ko dùng Vba mà thực hiên được yêu cầu này không?
Không dùng được Vba vì theo yêu cầu đặc biệt ở cơ quan mình chỉ được dùng định dạng xlsx thôi. File đó sẽ copy cho nhiều nhân viên và yêu cầu họ điền 1 vùng dữ liệu = nhập thủ công - ko cho gian lận copy - paste.Vậy có giải pháp nào ko dùng Vba mà thực hiên được yêu cầu này không?
Dạ vâng. Cảm ơn anh siwtom. Tại vì thấy các bạn nói ko thể sửa được nên em nói vui vậy chứ em cũng nghĩ là hết nước rồi. Nếu anh có ý tưởng nào có thể trợ giúp xin vui lòng cho e biết để học hỏi. Tks anh
Dạ vâng. Cảm ơn anh siwtom. Tại vì thấy các bạn nói ko thể sửa được nên em nói vui vậy chứ em cũng nghĩ là hết nước rồi. Nếu anh có ý tưởng nào có thể trợ giúp xin vui lòng cho e biết để học hỏi. Tks anh
Nếu dùng VBA thì theo link tại bài #2 của bạn nghiaphuc thì làm được rồi anh ah. Cơ quan em lại chỉ cho dùng file này với định dạng xlsx thế mới buồn chứ.
Dù sao cũng cảm ơn mọi người đã tư vấn để còn biết tìm hướng khác mà làm chứ ko biết gì cứ như con thiêu thân lao vào đống lửa thì chết dở! Tks
Nếu dùng VBA thì theo link tại bài #2 của bạn nghiaphuc thì làm được rồi anh ah. Cơ quan em lại chỉ cho dùng file này với định dạng xlsx thế mới buồn chứ.
Dù sao cũng cảm ơn mọi người đã tư vấn để còn biết tìm hướng khác mà làm chứ ko biết gì cứ như con thiêu thân lao vào đống lửa thì chết dở! Tks
Chắc chuyển AddIn chỉ tiện dùng cho máy mình thôi anh à vì rất nhiều người (ở chỗ em) không biết/ ngại dùng/ ngại thay đổi... Hic. Ước gì có lựa chọn Protect sheet chỉ Protect ko cho Paste thì tốt, 1 số chỗ bắt nhập thủ công hết... Nói vui vậy thôi chứ em phải nghiên cứu tìm cách khác vậy. Cám ơn mọi người !
Dạ vâng. Thực sự là e đang tìm xem có cách nào chống kẻ gian "toàn diện" không mà không dùng Vba trong file.
Có 1 ý tưởng thế này:
- Mình chuyển đôi file abc.xlsx thế nào đó thành file tự chạy (icon vẫn là xlsx)
- Khi chạy nó mới bung file abc.xlsx thực ra đồng thời chạy code chống Paste (từ Clipboad) - có thể là can thiệp vào Registry
- Khi đóng file thì khôi phục mặc định
Có thể như thế không ạ? Nếu được mong các bạn vui lòng hướng dẫn
Dạ vâng. Thực sự là e đang tìm xem có cách nào chống kẻ gian "toàn diện" không mà không dùng Vba trong file.
Có 1 ý tưởng thế này:
- Mình chuyển đôi file abc.xlsx thế nào đó thành file tự chạy (icon vẫn là xlsx)
- Khi chạy nó mới bung file abc.xlsx thực ra đồng thời chạy code chống Paste (từ Clipboad) - có thể là can thiệp vào Registry
- Khi đóng file thì khôi phục mặc định
Có thể như thế không ạ? Nếu được mong các bạn vui lòng hướng dẫn
Theo tôi chỗ đỏ đỏ có mâu thuẫn với nhau. Bạn giải thích rõ ràng nhé.
Tôi lặp lại câu hỏi: xlsx vì sếp thấy nó đẹp hay mục đích thực là không cho dùng code?
Ngoài ra chỗ xanh xanh phải hiểu như thế nào? Vd. tên là abc.xlsx nhưng thực chất lõi là tập tin EXE? Nếu thế thì bạn đang lách luật do sếp đặt ra? Hay là "không dùng Vba trong file" có nghĩa là không dùng VBA chỉ trong tập tin cụ thể "này" còn trong các tập tin khác có quyền dùng VBA, xlsm?
Còn câu "bung file abc.xlsx thực ra đồng thời chạy code chống Paste " cụ thể là thế nào? XLSX không có code vậy "đồng thời chạy code" là chạy code nào, của ai?
Nói cho cùng chống kẻ gian hơi bị khó. addin có thể remove trong thời gian nhập liệu. Code trong tập tin có thể thay đổi để "lách" ...
Làm được hay không thì trước hết vẫn phải phát biểu "bài Toán" thật chính xác.
Hic, xem lại #13 thì thấy ý tưởng mình viết thật dở tệ ...
- Xlsx sếp thích vừa là vì đẹp (định dạng mới, dung lượng ít hơn xls...) & vừa là ko cho dùng code
Vấn đề của em là như thế này:
- Bây giờ tạm bỏ qua yêu cầu file xlsx của sếp, dùng xls cũng được
- Nhiệm vụ của em là thu thập file cùng định dạng của khoảng 30 người. Mà file phải điền = tay mới đúng được định dạng yêu cầu trong đó (copy/paste là hỏng ngay) sau đó mới upload được lên web nội bộ. Nếu sếp cần thì em chuyển file sang xlsx rồi gửi lại cho sếp sau.
- Nếu dùng xls và cho Code vào thì nhân viên vẫn có thể lách luật disable macro để Paste thì sau đó mình phải tìm từng ô để sửa thì hic hic
- Vậy nếu gửi cho nhân viên file xls đó thì có cách nào kể cả họ disable macro ko chạy code thì khi mở file này (chỉ file này) mình vẫn ko cho họ dùng chức năng Paste (từ Clipboad) hay không? Khi đóng file này lại thì lại thiết lập Copy/Paste bình thường.
Hic, xem lại #13 thì thấy ý tưởng mình viết thật dở tệ ... - Xlsx sếp thích vừa là vì đẹp (định dạng mới, dung lượng ít hơn xls...) & vừa là ko cho dùng code
Vấn đề của em là như thế này:
- Bây giờ tạm bỏ qua yêu cầu file xlsx của sếp, dùng xls cũng được
- Nhiệm vụ của em là thu thập file cùng định dạng của khoảng 30 người. Mà file phải điền = tay mới đúng được định dạng yêu cầu trong đó (copy/paste là hỏng ngay) sau đó mới upload được lên web nội bộ. Nếu sếp cần thì em chuyển file sang xlsx rồi gửi lại cho sếp sau.
- Nếu dùng xls và cho Code vào thì nhân viên vẫn có thể lách luật disable macro để Paste thì sau đó mình phải tìm từng ô để sửa thì hic hic
- Vậy nếu gửi cho nhân viên file xls đó thì có cách nào kể cả họ disable macro ko chạy code thì khi mở file này (chỉ file này) mình vẫn ko cho họ dùng chức năng Paste (từ Clipboad) hay không? Khi đóng file này lại thì lại thiết lập Copy/Paste bình thường.
Nếu vì đẹp thì .xlsm cũng đẹp vậy. Còn vừa muốn đẹp, vừa muốn không cho dùng code, vừa muốn không cho Copy/Paste thì yêu cầu có vẻ cao quá.
Đọc chỗ màu đỏ thì có vẻ bạn không muốn cho Copy/Paste là vì vấn đề định dạng đã thiết lập từ trước. Nếu đúng như vậy thì bạn có thể tham khảo topic sau: Có đoạn code nào biến mọi thao tác dán thành Paste Values không?
Hic, xem lại #13 thì thấy ý tưởng mình viết thật dở tệ ...
- Xlsx sếp thích vừa là vì đẹp (định dạng mới, dung lượng ít hơn xls...) & vừa là ko cho dùng code
Vấn đề của em là như thế này:
- Bây giờ tạm bỏ qua yêu cầu file xlsx của sếp, dùng xls cũng được
- Nhiệm vụ của em là thu thập file cùng định dạng của khoảng 30 người. Mà file phải điền = tay mới đúng được định dạng yêu cầu trong đó (copy/paste là hỏng ngay) sau đó mới upload được lên web nội bộ. Nếu sếp cần thì em chuyển file sang xlsx rồi gửi lại cho sếp sau.
- Nếu dùng xls và cho Code vào thì nhân viên vẫn có thể lách luật disable macro để Paste thì sau đó mình phải tìm từng ô để sửa thì hic hic
- Vậy nếu gửi cho nhân viên file xls đó thì có cách nào kể cả họ disable macro ko chạy code thì khi mở file này (chỉ file này) mình vẫn ko cho họ dùng chức năng Paste (từ Clipboad) hay không? Khi đóng file này lại thì lại thiết lập Copy/Paste bình thường.
Bạn nói về định dạng gì đó nên tôi nghĩ là như bạn nghiaphuc nói trong bài #17. Vì tôi vẫn chưa hình dung được lý do chính đáng khác mà bạn cấm người ta Paste.
------------
Nếu chỉ để bàn luận cho vui thì thế này ...
Nói cho cùng thì bạn chỉ phải chống Paste.
Tôi nghĩ rằng có thể có nhiều cách chống Paste.
Hôm nay ta dùng tà đạo. Code cực kỳ đơn giản, không biết tôi đã lường hết các trường hợp chưa.
Mã:
[COLOR=#0000ff]code ThisWorkbook[/COLOR]
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' dong Clipboard vi co the tap tin duoc dong khi co o trong vung "cam" dang duoc chon, tuc Clipboard dang duoc mo
CloseClipboard
End Sub
Private Sub Workbook_Open()
' o luc "chao buoi sang" thi chon o ngoai vung cam
Sheets("Sheet1").Range("A1").Select
End Sub
[COLOR=#0000ff]code Sheet1[/COLOR]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' dong Clipboard bat luan dang mo hoac dang dong. Hoac dung flag blocked (boolean)
CloseClipboard
If Not Intersect(Target, [A2:C20]) Is Nothing Then
' neu chon o trong vung "cam" thi mo Clipboard va xoa Clipboard
OpenClipboard 0
EmptyClipboard
End If
End Sub
[COLOR=#0000ff]code Module1[/COLOR]
Public Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As Long) As Long
Public Declare Function CloseClipboard Lib "user32.dll" () As Long
Public Declare Function EmptyClipboard Lib "user32.dll" () As Long
Khi chọn ô bất kỳ, kể cả các ô trong vùng [A2: C20], thì luôn có thể copy. Nhưng nếu chọn ô trong
vùng [A2:C20] thì không Paste được. Kể cả khi sau khi chọn ô trong Excel "kẻ gian" quay sang vd. notepad copy một đoạn rồi trở về Excel nhấn Ctrl + V.
---------------
Ở trên là code chống Paste. "Kẻ gian" có thể nghĩ ra nhiều mẹo để lách luật.
Ví dụ disable macro. Thế này thì code tèo rồi. Tất nhiên có thể viết code Enable macro nhưng code đó không thể đặt trong tập tin vì sẽ tèo khi disable macro. Vậy phải đặt "ở ngoài".
Tôi nghĩ là ta sẽ viết 1 EXE gói trong mình nó tập tin XLS. Khi EXE được kích hoạt thì: Enable macro nếu đang disable macro --> bung XLS ra đĩa --> khởi động XLS.
Tôi làm việc với những cơ quan, phòng ban không cho dùng macro, kể cả add-ins là chuyện thường tình. Nhưng đây là lần đầu tiên thấy trường hợp cấm không cho copy/paste.
Theo tôi thấy thì luật "không cho" này là do bạn định ra để bảo vệ định dạng của mình (?) Yêu cầu giải quyết vấn đề chưa hẳn đã thế. Đó là mộtn yêu cầu vừa khó khăn thực hiên (phải làm nhiều chuyện) mà lại rất dễ lách qua (chỉ cần ngưòi thông minh một chút là gạt được)
Cách duy nhất để giữ nguyên định dạng của mình là không chấp nhận nhập liệu trực tiếp. Trường hợp của bạn bắt buộc phải nhận files thô và dùng phần mềm chép lại.
Bây giờ em mới rỗi 1 lúc để nói thêm về vấn đề này:
1) Ở cơ quan em đang làm nhiều việc & gồm có công tác khai báo Hải Quan (HQ) cho tàu biển.
2) Khi có tàu đến/ rời cảng em sẽ phải khai HQ trên mạng bằng file Excel đính kèm. File này nhân viên khác phải gửi cho em và phải điền bằng tay 03 Sheets (em đang để Visible - vùng màu vàng). Nếu nhân viên Copy Paste là hỏng ngay/ không upload được lên mạng Hải Quan. Không biết tại sao, đã kiến nghị nhiều lần nhưng không sửa được. NHƯ VẬY NHẤT THIẾT VÙNG MÀU VÀNG TRONG 03 SHEETS ĐÓ PHẢI ĐIỀN THỦ CÔNG
3) Sau đó em phải gửi file xlsx (nếu nhân viên dùng xls thì mình chuyển xlsx) rồi gửi mail cho sếp HQ.
Vậy có cách nào để cấm/ không cho nhân viên Copy - Paste trong vùng màu vàng của 03 Sheets không. Nếu họ không điền = tay mà copy paste => Không upload được mạng HQ => Khi upload nó sẽ báo chính xác lỗi ở đâu (Sheet nào, dòng nao, cột nào) nên nhiều khi em phải đánh lại rất nhiều Cells Hic hic
-------------------------------------------------