Code không cho copy sheet trong excel vba

Code không cho copy sheet trong excel vba

  • #1

Trong 1 sheet khi mình protect sheet để khống chế những ô được nhập(có điều kiện khi nhập vào) và những ô không nhập dữ liệu. Khi protect sheet xong thì những ô không bị lock, được nhập dữ liệu theo 1 điều kiện nào đó không kiểm soát được khi copy dữ liệu từ nơi khác vào. Các bạn giúp mình 1 đoạn code chống copy và paste trong sheet bị protect đó với.

Code không cho copy sheet trong excel vba

  • #2

Trong 1 sheet khi mình protect sheet để khống chế những ô được nhập(có điều kiện khi nhập vào) và những ô không nhập dữ liệu. Khi protect sheet xong thì những ô không bị lock, được nhập dữ liệu theo 1 điều kiện nào đó không kiểm soát được khi copy dữ liệu từ nơi khác vào. Các bạn giúp mình 1 đoạn code chống copy và paste trong sheet bị protect đó với.

Bạn muốn không muốn copy và Paste dữ liệu trong Sheets nào thì Paste đoạn code này vào Module của Sheets đó.

HTML:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.CutCopyMode = False
End Sub

  • No_Paste.xls

    18 KB · Đọc: 164

Lần chỉnh sửa cuối: 20/4/10

Code không cho copy sheet trong excel vba

  • #3

Không paste được nhưng vẫn copy được khi protect? Bạn giúp luôn code chống copy luôn được không?

Code không cho copy sheet trong excel vba

  • #4

Nếu bạn muốn không cho copy từ sheet Protec sang Sheets khác thì thêm cái này

HTML:

Private Sub Worksheet_Deactivate()
    Application.CutCopyMode = False
End Sub

Lần chỉnh sửa cuối: 20/4/10

Code không cho copy sheet trong excel vba

  • #5

Đúng rồi, tại sheet mình cho nhập dữ liệu chỉ được nhập = tay và không đem dữ liệu đi nơi khác luôn.
Code #4 không có tác dụng.

Lần chỉnh sửa cuối: 20/4/10

Code không cho copy sheet trong excel vba

  • #6

Đúng rồi, tại sheet mình cho nhập dữ liệu chỉ được nhập = tay và không đem dữ liệu đi nơi khác luôn.

Bạn trả lời chậm quá, tôi đã sửa lại bài trên, bạn xem đã đúng ý chưa ?

Code không cho copy sheet trong excel vba

  • #7

Vẫn copy được, còn paste thì ok rồi.

Code không cho copy sheet trong excel vba

  • #8

Đúng rồi, tại sheet mình cho nhập dữ liệu chỉ được nhập = tay và không đem dữ liệu đi nơi khác luôn.
Code #4 không có tác dụng.

Bạn thử lại xem có paste được dữ liệu sang Sheets khác không ? - Copy được mà không đem đi được thì copy có ý nghĩa gì chứ ?

Code không cho copy sheet trong excel vba

  • #9

Mình thử rồi. Paste vô tư luôn.

Code không cho copy sheet trong excel vba

  • #10

Mình thử rồi. Paste vô tư luôn.

Bạn Paste code vào đâu mà vô tư vậy. Tôi gửi lại File ví dụ

  • No_Paste.xls

    22 KB · Đọc: 117

Code không cho copy sheet trong excel vba

  • #11

Mình paste code vào trong sheet protect chứ đâu. Download file của bạn thì paste không được.
Cảm ơn bạn.

Code không cho copy sheet trong excel vba

  • #12

Trong 1 sheet khi mình protect sheet để khống chế những ô được nhập(có điều kiện khi nhập vào) và những ô không nhập dữ liệu. Khi protect sheet xong thì những ô không bị lock, được nhập dữ liệu theo 1 điều kiện nào đó không kiểm soát được khi copy dữ liệu từ nơi khác vào. Các bạn giúp mình 1 đoạn code chống copy và paste trong sheet bị protect đó với.

Trong Sheet code của sheet bạn muốn vô hiệu hóa cut và copy:

Mã:

Private Sub Worksheet_Activate()
 Dim oCtrl As Office.CommandBarControl
  For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
     oCtrl.Enabled = False
  Next oCtrl

  For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
     oCtrl.Enabled = False

  Next oCtrl
Application.CellDragAndDrop = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Application
        .CellDragAndDrop = False
        .CutCopyMode = False
    End With
End Sub

Trong sheet code của Thisworkbook:

Mã:

Private Sub Workbook_Deactivate()
Dim oCtrl As Office.CommandBarControl
   For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
      oCtrl.Enabled = True

   Next oCtrl
   For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
      oCtrl.Enabled = True

   Next oCtrl
 Application.CellDragAndDrop = True

End Sub

  • Chong Cut va Copy.xls

    22.5 KB · Đọc: 214

  • #13

Quan trọng là người ta phải Enable và không copy phần dữ liệu riêng trong cell thì mới được. Nếu họ Disable hoặc nháy đúp vào và chỉ copy phần dữ liệu thì vẫn paste được hết.

Code không cho copy sheet trong excel vba

  • #14

Thế bạn the_wind có hướng nào khắc phục cái này không?

  • #15

đoạn mã đó chỉ không cho copy và cut ở sheet hiện tại thôi, chứ copy và cut sang sheet khac vẫn được. có bác nào có đoạn mã mà không cho copy và cut sang sheet khác không

Code không cho copy sheet trong excel vba

  • #16

Quan trọng là người ta phải Enable và không copy phần dữ liệu riêng trong cell thì mới được. Nếu họ Disable hoặc nháy đúp vào và chỉ copy phần dữ liệu thì vẫn paste được hết.

1.) Nếu dùng code thì phải chịu thôi bạn à, Disable macro thì mất tác dụng, không dùng code thì dùng ProtectSheet thì đơn giản hơn nhiều, chỉ cho xem chứ không cho "sờ mó gì hết"
2.) Thử chỉnh, bỏ code vào Thisworkbook xem nhé, nó sẽ vô hiệu toàn Workbook

Code không cho copy sheet trong excel vba

  • #17

1.) Nếu dùng code thì phải chịu thôi bạn à, Disable macro thì mất tác dụng, không dùng code thì dùng ProtectSheet thì đơn giản hơn nhiều, chỉ cho xem chứ không cho "sờ mó gì hết"
2.) Thử chỉnh, bỏ code vào Thisworkbook xem nhé, nó sẽ vô hiệu toàn Workbook

Cái này cũng tương đối thôi domfootwear à. Vì mình nghĩ codes sẽ không tác dụng trong trường hợp sau :
- Mở 1 WorkBook khác
- Sau đó chuyển qua lại (Ctrl+F6)
- Và copy bằng cách kéo thả chuột; thế là xong

TDN

  • #18

Khai quật xíu.
Trên có hướng dẫn chống paste cho cả sheet,workbook chứ ko nói đến cell,
Mình có 1 sheet excel gồm nhiều dữ liệu được nhập vào,
Có nhiều ô dữ liệu thì paste vào được, nhưng có riêng 1 ô mình muốn phải nhập gõ bằng tay vào chứ không được paste vào ô đó,
Nhờ các bạn giúp đỡ

Code không cho copy sheet trong excel vba