Làm sao để không cho Paste nhưng vẫn sửa được dữ liệu trong một vùng

Liên hệ QC
... 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 ...

Theo nguyên tắc tâm lý, cái gì con người thấy thuận tiện thì họ làm. Bạn không có cách nào cấm họ cả, ngoại trừ cách hăm doạ trừng phạt.

Tại bạn cứ phải tự đánh lại cho nên người ta làm tới. Nếu bạn copy cái trang báo lỗi gởi cho sếp (và CC cho người nhập) thì sếp bạn sẽ có cách kỷ luật nhân viên này.

Vả lại, chuyện copy/paste (nếu dữ liệu đúng) thì đáng lẽ phải khuyến khich chứ? Bởi vì phải gõ từng ô có khả năng lỗi rất cao.

Nếu là tôi thì tôi giữ bản gốc, gởi một bản phụ cho nhân viên người ta vào dữ liệu - gõ hay copy/paste gì đó mặc họ. Xong tôi dùng code VBA trong một file nào đó của tôi, mở bản phụ, lấy dữ liệu chép vào bản gôc, và sau đó thì xoá bản phụ (hoặc đổi sang một folder nào đó để dành minh chứng sau này). Đối với bên HQ họ chỉ cần biết file gốc. Đối với sếp, bạn đâu có cần phải báo cáo là mình có một file xlsm.
 
Theo nguyên tắc tâm lý, cái gì con người thấy thuận tiện thì họ làm. Bạn không có cách nào cấm họ cả, ngoại trừ cách hăm doạ trừng phạt.

Tại bạn cứ phải tự đánh lại cho nên người ta làm tới. Nếu bạn copy cái trang báo lỗi gởi cho sếp (và CC cho người nhập) thì sếp bạn sẽ có cách kỷ luật nhân viên này.

Vả lại, chuyện copy/paste (nếu dữ liệu đúng) thì đáng lẽ phải khuyến khich chứ? Bởi vì phải gõ từng ô có khả năng lỗi rất cao.

Nếu là tôi thì tôi giữ bản gốc, gởi một bản phụ cho nhân viên người ta vào dữ liệu - gõ hay copy/paste gì đó mặc họ. Xong tôi dùng code VBA trong một file nào đó của tôi, mở bản phụ, lấy dữ liệu chép vào bản gôc, và sau đó thì xoá bản phụ (hoặc đổi sang một folder nào đó để dành minh chứng sau này). Đối với bên HQ họ chỉ cần biết file gốc. Đối với sếp, bạn đâu có cần phải báo cáo là mình có một file xlsm.
Dạ vâng, Cám ơn anh!
- Em cũng thấy rằng yêu cầu này hơi khó thực hiện. Tuy nhiên Excel cũng chỉ là công cụ giúp việc cho con người, mình có phương án nào để "ép" họ thực hiện được đúng yêu cầu thì tốt, vì điền bằng tay cũng không có gì quá khó khăn (sai 1 tí cũng OK vì nhiều khi chính quyền không kiểm tra gắt gao, nếu họ kiểm tra trên mạng HQ có sai thì sửa tí trên mạng hoặc file Excel upload lại là xong) mà nhân viên lại có nhiều thời gian hơn mình nhiều (mặc dù mình cũng là nhân viên) Hic.
- Em đã thử làm cách của anh dòng màu đỏ (nhân viên đưa cho mình file đã copy/paste tất nhiên upload báo lỗi - Mình dùng Code VBA lấy dữ liệu vào file gốc và ĐỂ ĐÚNG ĐỊNH DẠNG FILE GỐC thì upload vẫn lỗi) nhiều lần nhưng mạng Hải Quan cũng không upload được. Không thể hiểu nổi. Chắc là phải chịu thôi.
Cảm ơn mọi người đã giúp đỡ!
 
Lần chỉnh sửa cuối:
Cảm ơn mọi người đã giúp đỡ!

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
-------------------------------------------------


Anh có thể hướng dẫn em cách này được không? Tks anh


Như vậy thì những người kia không phải kẻ gian nên họ sẽ chả bỏ nhiều công để "lách luật". Trước kia do có khả năng Paste nên họ Paste cho thuận tiện hơn thôi. Nếu mình làm khó thì họ thôi chứ họ không bỏ công để "ra đòn".
Nếu thế thì ta cũng không cần cẩn thận quá, chỉ làm khó cho họ thấy gõ tay còn sướng hơn đi tìm cách lách luật.
Tôi cũng có việc của mình. Vài tiếng nữa tôi sẽ xét vấn đề EXE.
 
Tại sao bạn không tìm hiểu lý do file có paste với file sửa tay khác nhau gì để dẫn đến upload bị lỗi, theo tôi việc sửa dữ liệu trong một ô (cell) của Excel, thì chương trình chỉ hiểu là giá trị sửa, chứ nó không ghi lại số ấy bạn sửa bằng tay hay paste!
 
Tại sao bạn không tìm hiểu lý do file có paste với file sửa tay khác nhau gì để dẫn đến upload bị lỗi, theo tôi việc sửa dữ liệu trong một ô (cell) của Excel, thì chương trình chỉ hiểu là giá trị sửa, chứ nó không ghi lại số ấy bạn sửa bằng tay hay paste!
Đã thử nhiều lần:
+ Điền = tay thì upload OK
+ Copy/Paste thì không upload được (thử từng loại Standard Paste, Past Value, Paste Formatting...& thử nhiều Option trong Paste Speacial). Mà Paste xong, định dạng lại y như file gốc cũng không upload được.
+ Dùng VBA lấy dữ liệu từ file mà nhân viên Paste (đổi cả định dạng trong VBA luôn cho đúng với file gốc) rồi đưa vào file gốc cũng Not ok
Mình thực sự bó tay nên chắc chỉ còn cách điền thủ công thôi.
------------------------------------------------------------
Vài tiếng nữa tôi sẽ xét vấn đề EXE.
Vâng, em cũng muốn thử xem có giải pháp nào không? Làm phiền anh hướng dẫn thêm.
 
Lần chỉnh sửa cuối:
Vấn đề này tại sao lại không dùng VBA để xử nhỉ?
Viết code Auto_Open và Auto_Close để ép người dùng phải Enable Macro.
AuTo_Close sẽ siêu ẩn cái sheet cần nhập dữ liệu, AuTo_Open sẽ hiện sheet này ra
Vấn đề là chỉ để tôt cho công việc thôi vậy sao phải không cho dùng VBA chứ???
Cơ bản là chỉ sợ người nhập vô tình gây ra lỗi thôi mà.
 
Vấn đề này tại sao lại không dùng VBA để xử nhỉ?
Viết code Auto_Open và Auto_Close để ép người dùng phải Enable Macro.
AuTo_Close sẽ siêu ẩn cái sheet cần nhập dữ liệu, AuTo_Open sẽ hiện sheet này ra
Vấn đề là chỉ để tôt cho công việc thôi vậy sao phải không cho dùng VBA chứ???
Cơ bản là chỉ sợ người nhập vô tình gây ra lỗi thôi mà.
A có thể giải thích rõ hơn dùng Code để "ép" người dùng?
Như bài #25 em đã nói: điền = tay thì OK, còn nếu copy/Paste hoặc code thì kiểu gì cũng ko upload được, kiểm tra nhiều lần cũng ko tìm thấy làm = tay & các cách kia có gì khác nhau mà lại không upload được. Bế tắc quá... Hic hic

Nói chung bây giờ em rất muốn tìm phương án nào đó mà chỉ cho nhập bằng tay. Họ (nhân viên) nhập = tay không có vấn đề gì lớn & 1 file (1 tàu) có thể dùng nhiều lần nên có thể triển khai theo hướng này

Xin cảm ơn!
 
A có thể giải thích rõ hơn dùng Code để "ép" người dùng?
Như bài #25 em đã nói: điền = tay thì OK, còn nếu copy/Paste hoặc code thì kiểu gì cũng ko upload được, kiểm tra nhiều lần cũng ko tìm thấy làm = tay & các cách kia có gì khác nhau mà lại không upload được. Bế tắc quá... Hic hic

Bạn có thể đưa 2 bản Excel lên đây: 1 bản nhập bằng tay và 1 bản đã copy/paste được không?
Biết đâu người ngoài nhìn vào phát hiện được vấn đề thì sao?
Quan điểm của tôi: Làm thì phải làm tận gốc (kiểm tra nguyên nhân vấn đề) chứ tôi ít khi nào thích cái kiểu làm theo "hướng đi" mà người dùng tự cho là đúng
Vậy đi nha!
 
A có thể giải thích rõ hơn dùng Code để "ép" người dùng?
Như bài #25 em đã nói: điền = tay thì OK, còn nếu copy/Paste hoặc code thì kiểu gì cũng ko upload được, kiểm tra nhiều lần cũng ko tìm thấy làm = tay & các cách kia có gì khác nhau mà lại không upload được. Bế tắc quá... Hic hic

Nói chung bây giờ em rất muốn tìm phương án nào đó mà chỉ cho nhập bằng tay. Họ (nhân viên) nhập = tay không có vấn đề gì lớn & 1 file (1 tàu) có thể dùng nhiều lần nên có thể triển khai theo hướng này

Xin cảm ơn!
Thử hướng này xem thế nào. Trong sheet NHAPLIEU vùng màu vàng không dán
 

File đính kèm

  • Test.xlsm
    17 KB · Đọc: 9
Tôi cũng có việc của mình. Vài tiếng nữa tôi sẽ xét vấn đề EXE.

Xin lỗi bạn là tôi đã nhen nhóm nềm hi vọng vô ích.

Bây giờ mới xét kỹ vấn đề thì tôi thấy không đơn giản tí nào. Mục đích chính của ta là đặt một code ở bên ngoài - EXE - để "bật" macro nếu "người ta" disable macro. Chính vì thế mà ta phải cho người ta 1 tập tin duy nhất là EXE, vì cho XLS thì người ta kích hoạt luôn XLS và như thế không có code để bật macro nếu cần thiết. Nhưng cho người ta EXE có nghĩa là phải gói XLS trong EXE rồi sau đó bung ra đĩa thì Excel mới mở được. Một khi đã có XLS trên đĩa rồi thì người ta lại có thể kích hoạt XLS chứ không kích hoạt EXE, và lúc đó không có code nào bật macro nếu cần thiết. Tất nhiên có thể viết code để kiểm tra xem XLS được "người ta" kích hoạt hay do EXE kích hoạt nhưng lúc đó thì lại vẫn "vấn đề" như cũ. Tức nếu cái code "thanh tra" đó đặt trong XLS thì tèo khi họ disable macro còn nếu đặt trong EXE thì do họ kích hoạt luôn XLS chứ không kích hoạt EXE nên code cũng tèo.

Tóm lại bạn nên yêu cầu người ta làm cho đúng. Ai làm không đúng thì báo cáo với sếp. Bạn không trị được người ta nhưng sếp thì chắc chắn trị được.

Hoặc ta tìm nguyên nhân khi Paste dẫn đến sai. Vì Paste thì thực ra chỉ khác gõ bằng tay cái "định dạng" thôi chứ nhỉ?
 
Thử hướng này xem thế nào. Trong sheet NHAPLIEU vùng màu vàng không dán

Code cấm Paste thì không khó và có thể viết nhiều kiểu.

Cái vấn đề đau đầu và viết tốn giấy mực cho tới tận giờ là nếu người ta cố tình lách luật thì người ta sẽ disable macro và toàn bộ code đi teo.

Ngoài ra code

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [B6:F17]) Is Nothing Then
   Application.CutCopyMode = False
End If
End Sub

chỉ ngăn người ta Paste từ cell nào đó vào vùng "cấm" mà thôi. Còn vẫn Paste được khi: chọn cell trong vùng "cấm" cần Paste --> chuyển sang văn bản có dữ liệu cần copy, vd. notepad, word ... --> copy dữ liệu vào bộ nhớ --> quay lại Excel --> nhấn Ctrl + V hoặc Paste.
 
Cái vấn đề đau đầu và viết tốn giấy mực cho tới tận giờ là nếu người ta cố tình lách luật thì người ta sẽ disable macro và toàn bộ code đi teo.
- Cơ quan em toàn người "mu tít, mù tịt" VBA nên nên số đông chắc là không biết disable marco (tính đến thời điểm này). Tuy nhiên họ dùng máy tính riêng nên chắc phải dùng thủ thuật nào đó để Enable Macro rồi chạy file kèm code Disable Paste from clipboad có được không a? (yêu cầu dùng xlsx là của cơ quan Hải Quan vì sợ bị virus và yêu cầu khác ...)
- Thực ra là cũng góp ý với những nhân viên đó nhiều lần, có báo cáo với sếp nhưng mà toàn "5C" anh ạ (con cháu các cụ cả) nên họ làm cứ lờ lớ lơ, mình "thấp cổ bé họng" toàn "chịu trận", tính dùng kiến thức để trị họ thế mà... hic hic

* GPE đã có ai làm khai hải quan (https://e-manifest.customs.gov.vn) chưa? có thể sẽ hiểu chi tiết file này
- Các anh xem Ví dụ 2 file. File 1 gõ = tay thì upload ok (có hình). File 2 là copy Paste rồi định dạng lại y như file 1 vẫn không upload được (1 số file báo lỗi ngày tháng khi upload mặc dù đã định dạng đúng như file gốc hiện tại em không có ở đây)
- Em kiểm tra nhiều lần thì hình như: khi Paste vào 1 vùng nó sẽ thay đổi định dạng vùng gốc (chắc chắn ko y như vùng gốc được) mình định dạng lại vùng vừa Paste như định dạng gốc thì chương trình không cho upload => Có thể do trang web có vấn đề.
- Đặc biệt là những ô ngày tháng (định dạng ô gốc là Text, nhưng phải gõ theo dạng "DD/MM/YYYY") thì ở dữ liệu nhân viên có thể copy Ô thường có định dạng Date hoặc Customs ("dd/mm/yyyy), khi họ copy vào file gốc e đổi định dạng ô về Text thì cũng không được... Hic hic

Nói chung em thấy yêu cầu của Threat này chắc khó khả thi. Cảm ơn mọi người đã quan tâm cho ý kiến/ ý tưởng. Em sẽ cố nghiên cứu hướng khác xem thế nào. Tks again
 

File đính kèm

  • Customs.zip
    266.6 KB · Đọc: 17
Lần chỉnh sửa cuối:
- Cơ quan em toàn người "mu tít, mù tịt" VBA nên nên số đông chắc là không biết disable marco (tính đến thời điểm này). Tuy nhiên họ dùng máy tính riêng nên chắc phải dùng thủ thuật nào đó để Enable Macro rồi chạy file kèm code Disable Paste from clipboad có được không a? (yêu cầu dùng xlsx là của cơ quan Hải Quan vì sợ bị virus và yêu cầu khác ...)
- Thực ra là cũng góp ý với những nhân viên đó nhiều lần, có báo cáo với sếp nhưng mà toàn "5C" anh ạ (con cháu các cụ cả) nên họ làm cứ lờ lớ lơ, mình "thấp cổ bé họng" toàn "chịu trận", tính dùng kiến thức để trị họ thế mà... hic hic

* GPE đã có ai làm khai hải quan (https://e-manifest.customs.gov.vn) chưa? có thể sẽ hiểu chi tiết file này
- Các anh xem Ví dụ 2 file. File 1 gõ = tay thì upload ok (có hình). File 2 là copy Paste rồi định dạng lại y như file 1 vẫn không upload được (1 số file báo lỗi ngày tháng khi upload mặc dù đã định dạng đúng như file gốc hiện tại em không có ở đây)
- Em kiểm tra nhiều lần thì hình như: khi Paste vào 1 vùng nó sẽ thay đổi định dạng vùng gốc (chắc chắn ko y như vùng gốc được) mình định dạng lại vùng vừa Paste như định dạng gốc thì chương trình không cho upload => Có thể do trang web có vấn đề.
- Đặc biệt là những ô ngày tháng (định dạng ô gốc là Text, nhưng phải gõ theo dạng "DD/MM/YYYY") thì ở dữ liệu nhân viên có thể copy Ô thường có định dạng Date hoặc Customs ("dd/mm/yyyy), khi họ copy vào file gốc e đổi định dạng ô về Text thì cũng không được... Hic hic

Nói chung em thấy yêu cầu của Threat này chắc khó khả thi. Cảm ơn mọi người đã quan tâm cho ý kiến/ ý tưởng. Em sẽ cố nghiên cứu hướng khác xem thế nào. Tks again

Như bài #30 tôi đã nói cái Paste nó hơi bị bí hiểm cần xem kỹ.
Còn nếu bạn cứ muốn ép người ta phải enable macro để code khóa Paste chạy được thì cũng có thể thử cách khác.

Bạn protect Sheet có mật khẩu. Có code VBA để mở mật khẩu. Bạn đặt vd. 1 Button trên sheet và gán cho nó macro mở protect. Khi đóng tập tin thì cũng có code để protect lại. Bạn nói với người ta: để nhập liệu thì cần nhấn Button để unprotect. Mà để chạy macro gán cho Button thì "người ta" phải có enable macro. Thế thôi.

Tất nhiên phải đặt mật khẩu cho VBA.

Nói cho cùng người ta cũng có thể tìm cách mở VBA nhưng không phải ai cũng biết và ta chỉ làm khó dễ để người ta thấy là gõ dữ liệu còn sướng hơn tìm cách lách luật mà thôi

Tuy nhiên cách tốt nhất là yêu cầu người ta làm cho đúng. Chứ bắt được họ phải gõ nhưng họ gõ sai thì cũng vứt đi. Họ phải làm đúng thì "nghiệm thu" còn không thì bác bỏ. Người ta đi làm hưởng lương chứ có phải họ bố thí gì đâu mà phải van nài người ta
 
Lần chỉnh sửa cuối:
...
Tuy nhiên cách tốt nhất là yêu cầu người ta làm cho đúng. Chứ bắt được họ phải gõ nhưng họ gõ sai thì cũng vứt đi. Họ phải làm đúng thì "nghiệm thu" còn không thì bác bỏ. Người ta đi làm hưởng lương chứ có phải họ bố thí gì đâu mà phải van nài người ta

Chủ thớt đã từng nói qua, dữ liệu sai một chút cũng không sao.
Rõ ràng trọng tâm của đề bài này là "hình thức mẫu mã" cho đúng, chứ "nội dung" không quan trọng.

Thực ra theo tôi hiểu thì có lẽ cái file chính và cái nguồn người ta copy có một số định dạng gì đó không hợp nhau cho nên lúc copy/paste dữ liệu bị bên nhận hiểu sai. Tuy nhiên tôi không đào sâu hơn nữa vì theo tình huống này chủ thớt không phải muốn tìm giải pháp cho vấn đề của mình. Đương sự đã đặt giải pháp rồi, và chỉ hỏi phương cách thực hiện giải pháp ấy.

Bạn chỉ việc viết code cho chủ thớt thực hiện đúng ý. Còn kiểm soát được hay không chẳng (chưa) thành vấn đề.

Điểm mà tôi không hiểu là nhét một đống code, điều kiện này nọ vào file thì đến lúc upload cho đối tác bên kia lại phải gỡ ra. Nếu không lại có khả năng bị báo lỗi (?)
 
Web KT
Back
Top Bottom