GIúp code phân biệt đang SetFocus ở Textbox nào

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE !
Em có tạo 1 Form gồm 2 Textbox. Sau khi Form hiện lên thì người dùng sẽ có chọn trỏ chuột vào 2 textbox tùy ý. Vậy có cách nào Phân biệt là đang chọn Trỏ chuột vào Textbox 1 hoặc 2 không ( Ví dụ nếu trỏ chuột vào textbox1 thì ô A1=1, trỏ chuột vào textbox2thì ô A1=2 ). Xin chân thành cảm ơn

1543819785504.png

1543819736073.png
 

File đính kèm

  • 1543819676780.png
    1543819676780.png
    30.4 KB · Đọc: 3
Chào cả nhà GPE !
Em có tạo 1 Form gồm 2 Textbox. Sau khi Form hiện lên thì người dùng sẽ có chọn trỏ chuột vào 2 textbox tùy ý. Vậy có cách nào Phân biệt là đang chọn Trỏ chuột vào Textbox 1 hoặc 2 không ( Ví dụ nếu trỏ chuột vào textbox1 thì ô A1=1, trỏ chuột vào textbox2thì ô A1=2 ). Xin chân thành cảm ơn

View attachment 208664

View attachment 208663
Bạn thử form dưới xem nhé. Form Tham khảo của anh chị nào trên diễn đàn mà mình không nhớ. Mình thấy đáp ứng yêu cầu của bạn.
 

File đính kèm

Upvote 0
Không hiểu ý chu đề tài khi bạn chọn text box nào thì liên quan gì đến cell
Còn khi bạn setforcus thì hình như co trỏ nó nhấp nháy mà
 
Upvote 0
Không hiểu ý chu đề tài khi bạn chọn text box nào thì liên quan gì đến cell
Còn khi bạn setforcus thì hình như co trỏ nó nhấp nháy mà
Cần gì phải hiểu. Thớt này luôn luôn hỏi những đề tài chả ai dùng được. Cái project mà thớt đang thực hiện nó thuộc về sản phẩm trí tuệ đặc thù, không thể ứng dụng cho việc khác.

Me.ActiveControl
Me.ActiveControl.Name
 
Upvote 0

File đính kèm

Upvote 0
Không hiểu ý chu đề tài khi bạn chọn text box nào thì liên quan gì đến cell
Còn khi bạn setforcus thì hình như co trỏ nó nhấp nháy mà
Ý là. Nếu bạn đang Setforcus Textbox1 thì mình muốn ô A1 = 1
Nếu bạn đang Setforcus Textbox2 thì mình muốn ô A1 =2
Bài đã được tự động gộp:

View attachment 208719
Mình mở được bình thường. Mình dùng Office 2016, 32 bit.
Nếu không được thì bạn thử tạo 1 excel mới, Tải file desktop.rar, import 2 form (.frm, .frx) vào thử xem.

Mình tãi về thì nó hiện như thế này. không có cái testbox gì hết
1544083362782.png
bạn gủi lại giúp mình với
Bài đã được tự động gộp:

Cần gì phải hiểu. Thớt này luôn luôn hỏi những đề tài chả ai dùng được. Cái project mà thớt đang thực hiện nó thuộc về sản phẩm trí tuệ đặc thù, không thể ứng dụng cho việc khác.

Me.ActiveControl
Me.ActiveControl.Name
Chào bác Mình chưa hiểu Code đoạn này. bác có giúp giúp cho trót
Me.ActiveControl
Me.ActiveControl.Name

Bài đã được tự động gộp:

View attachment 208719
Mình mở được bình thường. Mình dùng Office 2016, 32 bit.
Nếu không được thì bạn thử tạo 1 excel mới, Tải file desktop.rar, import 2 form (.frm, .frx) vào thử xem.
File đây làm dùm mình cái. cảm ơn chân thành cảm tạ đức phật
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ý là. Nếu bạn đang Setforcus Textbox1 thì mình muốn ô A1 = 1
Nếu bạn đang Setforcus Textbox2 thì mình muốn ô A1 =2
Bài đã được tự động gộp:



Mình tãi về thì nó hiện như thế này. không có cái testbox gì hết
View attachment 208875
bạn gủi lại giúp mình với
Bài đã được tự động gộp:


Chào bác Mình chưa hiểu Code đoạn này. bác có giúp giúp cho trót
Me.ActiveControl
Me.ActiveControl.Name

Bài đã được tự động gộp:


File đây làm dùm mình cái. cảm ơn chân thành cảm tạ đức phật
Bạn thử máy cái sự kiện của TextBox
Mã:
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 1
End Sub
Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 2
End Sub
 
Upvote 0
Món đã được bác VetMini mang tới tận bàn rồi mà vẫn chưa biết cách dùng. Khổ thật.

Không hiểu ý chu đề tài khi bạn chọn text box nào thì liên quan gì đến cell

Chuyện ghi xuống A1 chẳng qua là người ta ví dụ thôi. Dụng ý là người ta ghi vào đâu đó - sheet, biến, email, đĩa, registry, sổ tay.

Nếu theo lôgic thì ghi là mục đích để sau đó đọc ra. Vậy thì lúc nào cần đọc ra thay vì vd.
Mã:
If Range("A1") = 1 Then    ' Sổ tay = 1 Then
    ...
Else
    ...
End If
thì dùng
Mã:
If Me.ActiveControl.Name = "TextBox1" Then
    ...
Else
    ...
End If

Lúc đó chả cần ghi ở đâu cả.
--
Cái anh chàng truongvu317 này bây giờ đang ẩn dật ở đâu mà mấy lần hỏi không thấy trả lời.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử máy cái sự kiện của TextBox
Mã:
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 1
End Sub
Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 2
End Sub
Lỡ người ta Tab vào, hoặc tự đông vào theo thứ tự thì sao?
Khi sử dụng Userform, tôi đâu rất hiếm khi dùng đến chuột. Mà thiết kế form phải dùng đến chuột là thiết kế dở.

Muốn sử dụng sự kiện thì dùng Enter và Exit

Private Sub TextBox1_Enter()
Sheet1.Range("a1") = "textbox 1"
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""
End Sub

Private Sub TextBox2_Enter()
Sheet1.Range("a1") = "textbox 2"
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""
End Sub

Thiệt ra, thớt muốn hiện 1-2 lên ô là giải pháp dở. Nếu muốn chỉ rõ TexBox náo đang được focus thì người ta highlight (đổi màu) nó, hoặc đặt cái label trỏ vào nó.
 
Upvote 0
Chào cả nhà GPE !
Em có tạo 1 Form gồm 2 Textbox. Sau khi Form hiện lên thì người dùng sẽ có chọn trỏ chuột vào 2 textbox tùy ý. Vậy có cách nào Phân biệt là đang chọn Trỏ chuột vào Textbox 1 hoặc 2 không ( Ví dụ nếu trỏ chuột vào textbox1 thì ô A1=1, trỏ chuột vào textbox2thì ô A1=2 ). Xin chân thành cảm ơn
Bạn hỏi sao tôi trả lời vậy nhé. Đơn giản là dùng bắt sự kiện:
Tạo thêm một Label để hiển thị
Lưu ý: Đã biết thì biết cho trót. Học VBIDE / VBProject / Application / Events ( WB, WS , TextBox , UserForm, ...)
Mấy cái này có trong cửa sổ VBA hết

PHP:
Private Sub TextBox1_GotFocus()
    Label1.Caption = "Edit Me 1"
End Sub
Private Sub TextBox2_GotFocus()
    Label1.Caption = "Edit Me 2"
End Sub

'
Private Sub TextBox1_LostFocus()
    Label1.Caption = ""
End Sub
Private Sub TextBox2_LostFocus()
    Label1.Caption = ""
End Sub


 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử máy cái sự kiện của TextBox
Mã:
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 1
End Sub
Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("A1").Value = 2
End Sub
cảm ơn Bác. Nhưng khi em đang ở Textbox1 em nhấn Enter thì chuột nháy ở Textbox2 mà giá trị A1 không bằng 2
Bài đã được tự động gộp:

Lỡ người ta Tab vào, hoặc tự đông vào theo thứ tự thì sao?
Khi sử dụng Userform, tôi đâu rất hiếm khi dùng đến chuột. Mà thiết kế form phải dùng đến chuột là thiết kế dở.

Muốn sử dụng sự kiện thì dùng Enter và Exit

Private Sub TextBox1_Enter()
Sheet1.Range("a1") = "textbox 1"
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""
End Sub

Private Sub TextBox2_Enter()
Sheet1.Range("a1") = "textbox 2"
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""
End Sub

Thiệt ra, thớt muốn hiện 1-2 lên ô là giải pháp dở. Nếu muốn chỉ rõ TexBox náo đang được focus thì người ta highlight (đổi màu) nó, hoặc đặt cái label trỏ vào nó.
Thanh bác . Code bác chính xác 100%. thật ra em để ứng dụng cái này để em Làm 1 form có các nút bấm như bàn phím ảo. Khi chọn Textbox nào thì nhấn các nút ABC thì textbox đó nhận giá trị
Bài đã được tự động gộp:

Lỡ người ta Tab vào, hoặc tự đông vào theo thứ tự thì sao?
Khi sử dụng Userform, tôi đâu rất hiếm khi dùng đến chuột. Mà thiết kế form phải dùng đến chuột là thiết kế dở.

Muốn sử dụng sự kiện thì dùng Enter và Exit

Private Sub TextBox1_Enter()
Sheet1.Range("a1") = "textbox 1"
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""
End Sub

Private Sub TextBox2_Enter()
Sheet1.Range("a1") = "textbox 2"
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheet1.Range("a1") = ""

End Sub

Thiệt ra, thớt muốn hiện 1-2 lên ô là giải pháp dở. Nếu muốn chỉ rõ TexBox náo đang được focus thì người ta highlight (đổi màu) nó, hoặc đặt cái label trỏ vào nó.

Ý e là vậy nek bác. Nhờ code bác e mới làm đươc
Mã:
Private Sub CommandButton1_Click()
If Range("a1") = 1 Then
TextBox1.Value = TextBox1.Value & 1
Else
TextBox2.Value = TextBox2.Value & 1
End If



End Sub

Private Sub CommandButton2_Click()
If Range("a1") = 1 Then
TextBox1.Value = TextBox1.Value & 2
Else
TextBox2.Value = TextBox2.Value & 2
End If
End Sub

Private Sub CommandButton3_Click()
If Range("a1") = 1 Then
TextBox1.Value = TextBox1.Value & 3
Else
TextBox2.Value = TextBox2.Value & 3
End If
End Sub

Private Sub TextBox1_Enter()
Sheet1.Range("a1") = 1
End Sub



Private Sub TextBox2_Enter()
Sheet1.Range("a1") = 2
End Sub

Video đã thành công
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom