Code thỏa điều kiện thì không cho paste vào sheet đó

Liên hệ QC

LienDong

Thành viên thường trực
Tham gia
22/11/12
Bài viết
218
Được thích
46
Nghề nghiệp
Ai nói đúng thì làm!
Các bạn giúp code như sau
Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
Xin cảm ơn các bạn!
 
Upvote 0
Các bạn giúp code như sau
Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
Xin cảm ơn các bạn!
Copy code vào module sheet NhapLieu
Mã:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lastAction As String
  Application.EnableEvents = False
  lastAction = Application.CommandBars("Standard").Controls("&Undo").List(1)
  If Left(lastAction, 5) = "Paste" Then
    If Range("C5") = 1 Then
        MsgBox "Không duoc paste"
        Application.Undo
    End If
  End If
  Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Có người bạn họ chuyển cho em 1 cái file
Em không thể copy ở các sheet khác để dán vào NHAPLIEU
bây giờ các bạn sửa code để làm sao
Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
 

File đính kèm

  • DANH_SACH_LOP3-2.xlsm
    15.5 KB · Đọc: 2
Upvote 0
Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
Thử nó xem:
Mã:
Private Sub Worksheet_Activate()
If Range("C5").Value <> 1 Then
    Application.ScreenUpdating = True
Else
    Application.Calculation = xlCalculationAutomatic
End If
End Sub
 

File đính kèm

  • DANH_SACH_LOP3-2.xlsm
    16.4 KB · Đọc: 3
Upvote 0
Thử nó xem:
Mã:
Private Sub Worksheet_Activate()
If Range("C5").Value <> 1 Then
    Application.ScreenUpdating = True
Else
    Application.Calculation = xlCalculationAutomatic
End If
End Sub
Giúp xong thì thớt chạy mất tiêu.
Bạn cho mình hỏi, theo mình hiểu là không cho paste vào sheet NhapLieu khi ô C5 ở sheet NhapLieu =1.
Mà thấy bài #2 với #8 code không đề cập gì đến vụ này?
 
Upvote 0
Giúp xong thì thớt chạy mất tiêu.
Bạn cho mình hỏi, theo mình hiểu là không cho paste vào sheet NhapLieu khi ô C5 ở sheet NhapLieu =1.
Mà thấy bài #2 với #8 code không đề cập gì đến vụ này?
Hihi. Em trả lời #8 thôi nhé. Bài #2 lúc ấy chưa có file nên em trả lời mò ấy
Em chỉ biết sub trên được thả vào sheet NhapLieu
Do trong file của thớt có sẵn đoạn code này:
Mã:
Application.Calculation = xlCalculationAutomatic
Thấy nó không cho paste thật ( cái này em cũng không hiểu nguyên lý vận hành. Đang tìm hiểu anh ạ) và em chỉ có thêm cái cập nhật màn hình thì lại OK. Cảm giác nó lạ lạ thế nào ấy
 
Upvote 0
Hihi. Em trả lời #8 thôi nhé. Bài #2 lúc ấy chưa có file nên em trả lời mò ấy
Em chỉ biết sub trên được thả vào sheet NhapLieu
Do trong file của thớt có sẵn đoạn code này:
Mã:
Application.Calculation = xlCalculationAutomatic
Thấy nó không cho paste thật ( cái này em cũng không hiểu nguyên lý vận hành. Đang tìm hiểu anh ạ) và em chỉ có thêm cái cập nhật màn hình thì lại OK. Cảm giác nó lạ lạ thế nào ấy
Bạn thử insert một module, chèn code:
Mã:
Sub abc()
Application.Calculation = xlCalculationAutomatic
End Sub
Xong bạn bấm copy một vùng nào đó trên sheet, rồi chạy code đó nghiệm xem. (Chạy làm sao để nhìn được cái vùng vừa bấm copy đó nhé)
 
Upvote 0
Xong bạn bấm copy một vùng nào đó trên sheet, rồi chạy code đó nghiệm xem. (Chạy làm sao để nhìn được cái vùng vừa bấm copy đó nhé)
Hihi. Cái câu lệnh đó là để làm gì thế anh nhỉ? Thấy thi thoảng cũng dùng nó. Nếu thế thì nó bằng với câu lệnh này nhỉ?
Mã:
Application.CutCopyMode = False
 
Upvote 0
Hihi. Cái câu lệnh đó là để làm gì thế anh nhỉ? Thấy thi thoảng cũng dùng nó. Nếu thế thì nó bằng với câu lệnh này nhỉ?
Mã:
Application.CutCopyMode = False
Nếu bạn có một file hàng tá công thức, bạn đưa giá trị xuống ô nhiều lần mà đầu code không đưa về tính toán thủ công thì chờ code chạy hơi lâu á, dòng đó là để bật lại chế độ tính toán tự động cuối code thôi
 
Upvote 0
Nếu bạn có một file hàng tá công thức, bạn đưa giá trị xuống ô nhiều lần mà đầu code không đưa về tính toán thủ công thì chờ code chạy hơi lâu á, dòng đó là để bật lại chế độ tính toán tự động cuối code thôi
Dạ. hình dung ra rồi anh ạ. Có điều thắc mắc xíu là sao việc cập nhật chế độ tính toán lại nó lại làm tắt luôn cái ghi nhận copy trước đó nhỉ
 
Upvote 0
Hihi. Cái câu lệnh đó là để làm gì thế anh nhỉ? Thấy thi thoảng cũng dùng nó. Nếu thế thì nó bằng với câu lệnh này nhỉ?
Mã:
Application.CutCopyMode = False
Application.CutCopyMode = False là để hủy trạng thái copy chờ dán, nghĩa là hủy lệnh Ctrl+C, hủy Ctrl+X
 
Upvote 0
Dạ. hình dung ra rồi anh ạ. Có điều thắc mắc xíu là sao việc cập nhật chế độ tính toán lại nó lại làm tắt luôn cái ghi nhận copy trước đó nhỉ
Cái này thì MS họ viết ra vậy biết vậy thôi bạn ơi :D , Thử làm thủ công nó cũng vậy
1649298981943.png
 
Upvote 0
Web KT

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

Back
Top Bottom