code If not intersect.... Bị lỗi khi xóa dữ liệu trong vùng hoạt động của code

Liên hệ QC

Excel my love_1

Thành viên thường trực
Tham gia
12/11/19
Bài viết
321
Được thích
179
Em có mày mò làm 1 code cho bảng lương để nhập liệu nhanh hơn (vì lương của nhân viên toàn là số làm tròn đến hàng trăm nghìn) Nên. Với ý tưởng là chỉ gõ ít số là hiện ra đủ cả số tiền
Em có làm 1 userform để nhập 3 thông tin ( biến a chứa tên cột ; b là số rút gọn ; c là số trăm nghìn, triệu, tỷ)
ví dụ a=H, b = 3 , c = 1.000.000
thì khi nhập 3 vào ô H5 kết quả là 3.000.000
ví dụ a= J, b = 5 , c = 100.000
thì khi nhập 5 vào ô J10 kết quả là 500.000
Phần chạy code với ý tưởng trên em đã làm được (Xem ảnh 1)

Vấn đề của em là khi code đang được kích hoạt, mà mình ấn nút xóa (Delete) dữ liệu của 1 ô trong vùng cột của biến a, thì phát sinh lỗi là nó cứ chạy chạy gì đó 1 lúc và tiếp là code không hoạt động trở lại được nữa. Những lúc như vậy em phải đóng file lại, tắt excel, rồi mở lại file và mở lại userform nhập lại các thông số thì code mới lại chạy
Rất mong các anh, chị và các bạn sửa giúp lỗi trên
Em xin cảm ơn
 

File đính kèm

  • Thu nhap ca nhan 2020. - Copy.xlsb
    50.3 KB · Đọc: 6
  • Untitled.png
    Untitled.png
    267.5 KB · Đọc: 22
Lần chỉnh sửa cuối:
Em có mày mò làm 1 code cho bảng lương để nhập liệu nhanh hơn (vì lương của nhân viên toàn là số làm tròn đến hàng trăm nghìn) Nên. Với ý tưởng là chỉ gõ ít số là hiện ra đủ cả số tiền
Em có làm 1 userform để nhập 3 thông tin ( biến a chứa tên cột ; b là số rút gọn ; c là số trăm nghìn, triệu, tỷ)
ví dụ a=H, b = 3 , c = 1.000.000
thì khi nhập 3 vào ô H5 kết quả là 3.000.000
ví dụ b = 5 , c = 100.000
thì khi nhập 5 vào ô H5 kết quả là 500.000
Phần chạy code với ý tưởng trên em đã làm được (Xem ảnh 1)

Vấn đề của em là khi code đang được kích hoạt, mà mình ấn nút xóa (Delete) 1 ô trong vùng cột của biến a, thì phát sinh lỗi là nó cứ chạy chạy gì đó 1 lúc và tiếp là code không hoạt động trở lại được nữa. Những lúc như vậy em phải đóng file lại, tắt excel, rồi mở lại file và mở lại userform nhập lại các thông số thì code mới lại chạy
Rất mong các anh, chị và các bạn sửa giúp lỗi trên
Em xin cảm ơn
Sao lương lại nhập thủ công vậy bạn.Thế lấy dữ liệu ở đâu.
 
Upvote 0
Sao lương lại nhập thủ công vậy bạn.Thế lấy dữ liệu ở đâu.
Anh ơi em theo dõi mảng thuế thu nhập cá nhân! Dữ liệu lương em đành phải nhập tay từ các bản giấy của bảng lương của bên hành chánh họ đưa sang. Nên em nảy ra ý là dùng code gắn với sự kiện Change để khi gõ ít số là hiện đủ luôn. Đoạn gán sự kiện và nhập số em đã làm được, nhưng bị phát sinh lỗi khi xóa dữ liệu trong vùng chạy code. Mong anh xem qua file và giúp em. Em cảm ơn anh ạ
 
Lần chỉnh sửa cuối:
Upvote 0
1. Vứt Module1 và 3 Form
2. Trong Q1 nhập vd. 129 a nie 130 (dòng 130 không nhập tay).
3. Code tôi sửa trong Worksheet_Change.

Thao tác: nhập vd. R1 = h, S1 = 3, T1 = 1000 000 rồi nhập trong cột H. Khi nào muốn nhập trong cột vd. I thì sửa lại R1.
Dù đang thao tác ở H hay I thì sau khi thay đổi S1 i T1 thì các bước nhập liệu tiếp theo sẽ thay đổi. Vd. R1 = h, S1 = 3, T1 = 1000 000 rồi nhập vào H7 = 3 thì code biến thành H7 = 3 000 000. Nếu bây giờ đổi thành S1 = 6, T1 = 100 000 thì khi nhập H8 = 6 thì code đổi thành H8 = 600 000

Nhìn code của bạn tôi hiểu là khi S1 = 3 và nhập vào cột H giá trị <> 3 thì code không thay đổi nó.

Code có chú thích. Hãy đọc để hiểu.
 

File đính kèm

  • Thu nhap ca nhan 2020. - Copy.xlsb
    52.6 KB · Đọc: 4
Upvote 0
1. Vứt Module1 và 3 Form
2. Trong Q1 nhập vd. 129 a nie 130 (dòng 130 không nhập tay).
3. Code tôi sửa trong Worksheet_Change.

Thao tác: nhập vd. R1 = h, S1 = 3, T1 = 1000 000 rồi nhập trong cột H. Khi nào muốn nhập trong cột vd. I thì sửa lại R1.
Dù đang thao tác ở H hay I thì sau khi thay đổi S1 i T1 thì các bước nhập liệu tiếp theo sẽ thay đổi. Vd. R1 = h, S1 = 3, T1 = 1000 000 rồi nhập vào H7 = 3 thì code biến thành H7 = 3 000 000. Nếu bây giờ đổi thành S1 = 6, T1 = 100 000 thì khi nhập H8 = 6 thì code đổi thành H8 = 600 000

Nhìn code của bạn tôi hiểu là khi S1 = 3 và nhập vào cột H giá trị <> 3 thì code không thay đổi nó.

Code có chú thích. Hãy đọc để hiểu.
Em cảm ơn anh batman1, code chạy tuyệt vời , em rất cảm kích vì trong code có ghi chú, mặc dù có nhiều dòng code em cũng chưa hiểu hết , nhưng em cũng đoán đó là những dòng khử lỗi. Em thấy trong GPE có mục điều ước, em đành chen post luôn vô đây, Ước gì em có thể được bằng 1/100 trình độ của anh batman1.
 
Upvote 0
... Ước gì em có thể được bằng 1/100 trình độ của anh batman1.
Hiện giờ bạn có khoảng 10% trình độ của bác ta rồi.
Tuy nhiên 90% còn lại nó sẽ phát triển theo kiểu khác.
Tiến độ sẽ thuộc về thái độ học và mức độ siêng của chính bạn.
 
Upvote 0
Em có mày mò làm 1 code cho bảng lương để nhập liệu nhanh hơn (vì lương của nhân viên toàn là số làm tròn đến hàng trăm nghìn) Nên. Với ý tưởng là chỉ gõ ít số là hiện ra đủ cả số tiền
Em có làm 1 userform để nhập 3 thông tin ( biến a chứa tên cột ; b là số rút gọn ; c là số trăm nghìn, triệu, tỷ)
ví dụ a=H, b = 3 , c = 1.000.000
thì khi nhập 3 vào ô H5 kết quả là 3.000.000
ví dụ a= J, b = 5 , c = 100.000
thì khi nhập 5 vào ô J10 kết quả là 500.000
Phần chạy code với ý tưởng trên em đã làm được (Xem ảnh 1)

Vấn đề của em là khi code đang được kích hoạt, mà mình ấn nút xóa (Delete) dữ liệu của 1 ô trong vùng cột của biến a, thì phát sinh lỗi là nó cứ chạy chạy gì đó 1 lúc và tiếp là code không hoạt động trở lại được nữa. Những lúc như vậy em phải đóng file lại, tắt excel, rồi mở lại file và mở lại userform nhập lại các thông số thì code mới lại chạy
Rất mong các anh, chị và các bạn sửa giúp lỗi trên
Em xin cảm ơn
Sao bạn không dùng chức năng auto replace trong Option sẵn có của excel, mình thấy cũng gần tương tự như ý tưởng bạn làm.
 
Upvote 0
Sao bạn không dùng chức năng auto replace trong Option sẵn có của excel, mình thấy cũng gần tương tự như ý tưởng bạn làm.
Vâng, trước đó em cũng đã thử dùng, nhưng thấy hơi bất tiện vì em chỉ cần áp dụng auto replace cho 1 số cột và cho 1 file này. Nếu dùng Option sẵn có thì nó lại áp dụng cho tất cả các file, tất cả các cột.
 
Upvote 0
Hiện giờ bạn có khoảng 10% trình độ của bác ta rồi.
Tuy nhiên 90% còn lại nó sẽ phát triển theo kiểu khác.
Tiến độ sẽ thuộc về thái độ học và mức độ siêng của chính bạn.
Tôi lại ước được bằng tuổi bạn ấy. Trình độ lớp 1 cũng được.
 
Upvote 0
Web KT
Back
Top Bottom