bạn tải file đính kèm về xem thử,
mình thêm 2 code:
txtHeSo_Change
txtHeSo_KeyPress (kiểm tra số nhập vào và đổi , thành chấm)
Sao lại có kiểu đó. Tôi nhập vào tọa độ của 4 điểm. Bạn có thể xác định được mặt phẳng đi qua 4 điểm đó không? Thường là không, trừ trường hợp "chó ngáp phải ruồi". 3 điểm đã xác định mặt phẳng Q và điểm thứ 4 có thể không nằm trong Q.
Tương tự ta phải nhập "Ngạch lương" và "Bậc lương" còn "Hệ số" được xác định từ 2 dữ kiện kia. Hoặc phải nhập "Ngạch lương" và "Hệ số" còn "Bậc lương" được xác định từ 2 dữ kiện kia.
Từ "Ngạch lương" xác định được dòng dữ liệu trong sheet LIST. Từ "Bậc lương" ta xác định được cột trong dòng kia, tức ta xác định được ô thỏa "Ngạch lương" và "Bậc lương". Ô bên trái của ô "kia" là "Hệ số" tương ứng với "Ngạch lương" và "Bậc lương"
Tương tự khi nhập "Ngạch lương" và "Hệ số". Ô bên phải ô "kia" là "Bậc lương" tương ứng với "Ngạch lương" và "Hệ số"
Nếu ta chọn nhập "Ngạch lương" và "Bậc lương" thì "Hệ số" sẽ do code và chỉ do code nhập vào Textbox txtHeso (chỉ có giá trị thông tin). Vậy phải khóa txtHeso không cho user nhập gì, tức Locked = TRUE.
Làm gì cũng phải suy nghĩ lô gíc một chút. Nếu người dùng nhập sai thì có phải rách việc không? Vd. với "Ngạch lương" là 15a.203 và "Bậc lương" là 1/9 thì "Hệ số" là 2,34 (cell J4). Thế nếu user nhập/chọn 15a.203, 1/9 và 3,33 thì có phải "méo mặt" không?
Tự dưng lại rước vạ vào thân, thêm việc cho mình (kiểm tra nếu Hệ số không khớp với 2 "vị" kia thì bắt nhập lại).
Hoặc nếu như trong tập tin thì: Chọn "Ngạch lương", tiếp theo nhập "Hệ số" thì code sẽ tự nhập giá trị vào "Bậc lương". Câu hỏi: thế nếu tiếp theo user chọn "Bậc lương" khác thì sao? Thì 3 dữ liệu không khớp nhau. Vậy giá trị nào do code và chỉ do code nhập thì phải "khóa" control. Nếu "Bậc lương" là suy ra từ "Ngạch lương" và "Hệ số" thì tôi đề nghị:
1. Chuyển ComboBox "Bậc lương" thành TextBox với Locked = TRUE
2. Chuyển TextBox "Hệ số" thành ComboBox. ComboBox.
3. Khi user chọn giá trị trong ComboBox "Ngạch lương" thì lúc đó ComboBox "Hệ số" mới có danh sách (phụ thuộc vào "Ngạch lương")
4. Khi user chọn giá trị trong ComboBox "Hệ số" thì code "đập" giá trị vào TextBox "Bậc lương"
Chuyển "Hệ số" thành ComboBox thì user chỉ phải chọn từ danh sách. Như thế là thân thiện với user. Vì gõ thì còn có vấn đề dấu thập phân, gõ nhầm, trí nhớ. Vd. làm sao user nhớ là có "Hệ số" 2,34 chứ không phải là 2,43? Chọn thay gõ cũng có nghĩa là txtHeSo_KeyPress là thừa.