Không nhìn thấy con trỏ trên UserForm (Setfocus) (1 người xem)

  • Thread starter Thread starter thomtv
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

thomtv

Thành viên hoạt động
Tham gia
10/5/10
Bài viết
127
Được thích
30
Mình ko biết đặt tiêu đề như thế nào cho hợp lý, có gì sai xin bỏ qua cho
Vấn đề như thế này: Mình sử dụng cùng 1 Userform trên 2 sheet khác nhau, nhưng ở sheet abb thì không thấy được con trỏ, còn ở sheet abc thì thấy được con trỏ, vậy cho hỏi nguyên nhân lỗi do sheet hay lỗi do Userform.
file đính kèm các bạn test giùm nhé. (test bẩy lỗi ở textbox mệnh giá 500.000, 1 bên thì thấy con trỏ, còn 1 bên thì không thấy)
Xin cảm ơn
 

File đính kèm

Mình ko biết đặt tiêu đề như thế nào cho hợp lý, có gì sai xin bỏ qua cho
Vấn đề như thế này: Mình sử dụng cùng 1 Userform trên 2 sheet khác nhau, nhưng ở sheet abb thì không thấy được con trỏ, còn ở sheet abc thì thấy được con trỏ, vậy cho hỏi nguyên nhân lỗi do sheet hay lỗi do Userform.
file đính kèm các bạn test giùm nhé. (test bẩy lỗi ở textbox mệnh giá 500.000, 1 bên thì thấy con trỏ, còn 1 bên thì không thấy)
Xin cảm ơn

Code Tại TextBox7:


Trước tiên, tại ô B1 của sheet "abc" phải có số liệu để so sánh (theo code của bạn)

Và sự kiện Change của nó sẽ như sau:

Mã:
Private Sub TextBox7_change()
    If Val(TextBox7) > Sheets("abc").Range("b1") Then
        MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
        TextBox24 = ""
        TextBox40 = ""
        With TextBox7
            .SetFocus
            .SelStart = 0
            .SelLength = Len(.Text)
        End With
    Else
        TextBox24 = Format(Val(TextBox7) * 500000, "#,##0")
        TextBox40 = Val(Replace(TextBox24, ",", "")) _
                  + Val(Replace(TextBox25, ",", "")) _
                  + Val(Replace(TextBox26, ",", "")) _
                  + Val(Replace(TextBox27, ",", "")) _
                  + Val(Replace(TextBox28, ",", "")) _
                  + Val(Replace(TextBox29, ",", "")) _
                  + Val(Replace(TextBox30, ",", "")) _
                  + Val(Replace(TextBox31, ",", "")) _
                  + Val(Replace(TextBox32, ",", "")) _
                  + Val(Replace(TextBox33, ",", "")) _
                  + Val(Replace(TextBox34, ",", "")) _
                  + Val(Replace(TextBox35, ",", "")) _
                  + Val(Replace(TextBox36, ",", "")) _
                  + Val(Replace(TextBox37, ",", "")) _
                  + Val(Replace(TextBox38, ",", "")) _
                  + Val(Replace(TextBox39, ",", ""))
    End If

Cứ thế mà sửa đối với những sự kiện ở các TextBox khác nhé!
 
Upvote 0
Với sự kiện change của textbox thì đôi khi set focus không ăn thua đâu. Phải dùng sự kiện Exit hoặc After Update, với tham số cancel. Trong code phải có câu cancel = True.

Vụ này tôi có nói nhiều lần trên GPE.
 
Upvote 0
Mình sử dụng cùng 1 Userform trên 2 sheet khác nhau, nhưng ở sheet abb thì không thấy được con trỏ, còn ở sheet abc thì thấy được con trỏ, vậy cho hỏi nguyên nhân lỗi do sheet hay lỗi do Userform.
Xin cảm ơn

Form cho sheet abc được show modal
Mã:
BANG_KE_TIEP_QUY.Show = BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]True[/COLOR][/B] do True là mặc định

Form cho sheet abb được show không modal
Mã:
BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]False[/COLOR][/B]

Rõ ràng 2 Form được show với 2 cách thức khác nhau.
 
Lần chỉnh sửa cuối:
Upvote 0
Form cho sheet abc được show modal
Mã:
BANG_KE_TIEP_QUY.Show = BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]True[/COLOR][/B] do True là mặc định

Form cho sheet abb được show không modal
Mã:
BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]False[/COLOR][/B]
[CODE]

Rõ ràng 2 Form được show với 2 cách thức khác nhau.[/QUOTE]
Nguyên nhân không thể thấy hiện con trỏ đúng như bạn nói, xin cảm ơn. 
Xin cảm ơn [COLOR=#000000]ptm0412 đã sửa lại đoạn code của textbox7 thấy nó gọn hơn và dễ hiểu hơn.
Qua sự nhiệt tình hướng dẫn của các bạn mình đã học hỏi thêm một số kinh nghiệm.
Chân thành cảm ơn mọi người đã quan tâm đến bài của mình và xin cảm ơn GPE.[/COLOR]
 
Upvote 0
Nguyên nhân không thể thấy hiện con trỏ đúng như bạn nói, xin cảm ơn.
Xin cảm ơn ptm0412 đã sửa lại đoạn code của textbox7 thấy nó gọn hơn và dễ hiểu hơn.
Qua sự nhiệt tình hướng dẫn của các bạn mình đã học hỏi thêm một số kinh nghiệm.
Chân thành cảm ơn mọi người đã quan tâm đến bài của mình và xin cảm ơn GPE.
Quái lạ, mình đọc tới đọc lui bài của Sư phụ mà không thấy sửa code gì ráo mà nói là sửa thấy ngắn gọn dễ hiểu là sao nhỉ?

Với sự kiện change của textbox thì đôi khi set focus không ăn thua đâu. Phải dùng sự kiện Exit hoặc After Update, với tham số cancel. Trong code phải có câu cancel = True.

Vụ này tôi có nói nhiều lần trên GPE.
 
Upvote 0
Quái lạ, mình đọc tới đọc lui bài của Sư phụ mà không thấy sửa code gì ráo mà nói là sửa thấy ngắn gọn dễ hiểu là sao nhỉ?

Có lẽ là: "Xin cảm ơn ptm0412 đã góp ý, mình hiểu thêm nhiều điều. Xin cảm ơn Hoàng Trọng Nghĩa đã sửa lại đoạn code của textbox7 thấy nó gọn hơn và dễ hiểu hơn"
 
Upvote 0
Có lẽ là: "Xin cảm ơn ptm0412 đã góp ý, mình hiểu thêm nhiều điều. Xin cảm ơn Hoàng Trọng Nghĩa đã sửa lại đoạn code của textbox7 thấy nó gọn hơn và dễ hiểu hơn"
Hahahaha, em đặt câu hỏi tu từ thôi! Thầy không cần trả lời đâu! hahahaha


Form cho sheet abc được show modal
Mã:
BANG_KE_TIEP_QUY.Show = BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]True[/COLOR][/B] do True là mặc định

Form cho sheet abb được show không modal
Mã:
BANG_KE_TIEP_QUY.Show [B][COLOR=#ff0000]False[/COLOR][/B]

Rõ ràng 2 Form được show với 2 cách thức khác nhau.

Chỉ cần chỉnh trong Properties của Form tại mục ShowModal = True và code trong thủ tục Show Form chỉ cần BANG_KE_TIEP_QUY.Show là khắc phục được tình trạng SetFocus này.
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom