Cách tạo giá trị comboBox sang textbox.

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

salam

Thành viên gắn bó
Tham gia
4/11/06
Bài viết
1,945
Được thích
1,896
Giới tính
Nam
Nghề nghiệp
Accountant
Em tạo 1 form trêm form có 2 textbox.
em muốn tạo một nút khi nhấp vào sẽ sổ ra một danh sách tên (VD: Tank 1, Tank 2 ... Trong Tank 1, Tank 2 ... có hai số liệu 1 và 2 của từng loạn Tank).
Khi chọn Tank 1 thì số liệu 1 và hai điền vào textbox1 và textbox2.
Các Bác giúp em với.
 
Em tạo 1 form trêm form có 2 textbox.
em muốn tạo một nút khi nhấp vào sẽ sổ ra một danh sách tên (VD: Tank 1, Tank 2 ... Trong Tank 1, Tank 2 ... có hai số liệu 1 và 2 của từng loạn Tank).
Khi chọn Tank 1 thì số liệu 1 và hai điền vào textbox1 và textbox2.
Anh mô tả rõ hơn bằng cách gửi file có form sẵn được không?
 
Upvote 0
Cái này sao nghe giống Combobox quá vậy! Nếu là Combobox thì trên diễn đàn có nhiều lắm. Bác tìm thử coi. Chỉ là thêm lệnh Combobox_Change thôi. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Em tạo 1 form trêm form có 2 textbox.
em muốn tạo một nút khi nhấp vào sẽ sổ ra một danh sách tên (VD: Tank 1, Tank 2 ... Trong Tank 1, Tank 2 ... có hai số liệu 1 và 2 của từng loạn Tank).
Khi chọn Tank 1 thì số liệu 1 và hai điền vào textbox1 và textbox2.
Các Bác giúp em với.
Nói thêm 1 chút:
- Nếu chọn Tank1 thì
-SL1 điền vào TextBox1
-SL2 điền vào TextBox2
- Nếu chọn Tank2 thì ----- ?
- Cái gì điền vào TextBox1
-Cái gì điền vào TextBox2
 
Upvote 0
Cái này sao nghe giống Combobox quá vậy! Nếu là Combobox thì trên diễn đàn có nhiều lắm. Bác tìm thử coi. Chỉ là thêm lệnh Combobox_Change thôi.
Thân.
Gần như vậy thôi Po_Pikachu ơi!
@Salam: Có phải ý anh như thế nào không? (Xem file đính kèm nhé)
 

File đính kèm

Upvote 0
Thì ý em là vậy đó! Mượn file của bác làm 1 tý nha! Hiiii Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nói thêm 1 chút:
- Nếu chọn Tank1 thì
-SL1 điền vào TextBox1
-SL2 điền vào TextBox2
- Nếu chọn Tank2 thì ----- ?
- Cái gì điền vào TextBox1
-Cái gì điền vào TextBox2

Nầu chọn Tank 2 thì số liệu 1 và 2 của tank 2 điền vào textbox1 và 2.

To ca_dafi

Đúng như trong file của bạn, nhưng ý mình muốn số liệu 1 và 2 của các tank mình nhập sẵn trong VBA không phải trong bảng tính.

Các Bác giúp em nhé.
 
Upvote 0
To ca_dafi:
Đúng như trong file của bạn, nhưng ý mình muốn số liệu 1 và 2 của các tank mình nhập sẵn trong VBA không phải trong bảng tính.
Các Bác giúp em nhé.
Như vậy hai biến Tank1 Tank2 của anh là hai biến mảng ? Như vậy khi gán thì cũng trên nguyên tắc đó thôi:
Khai báo hai biến mảng như sau:
PHP:
Public Tank1(1, 0) As Variant, Tank2(1, 0) As Variant
Khi Form activate:
PHP:
Private Sub UserForm_Activate()
Me.listTank.Visible = False
Me.cboList.Visible = False
For i = 0 To 1
Tank1(i, 0) = i + 1
Tank2(i, 0) = i + 5
Next i
End Sub
Sửa lại code khi sự kiện ListTank_doubleclick:
[highlight=vb]
Private Sub listTank_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Me.cboList.RowSource = Me.listTank.Value
'Me.txtVal1 = Me.cboList.List(0, 0)
'Me.txtVal2 = Me.cboList.List(1, 0)
'Me.listTank.Visible = False
'------------------------------------------------------------------
If Me.listTank = "Tank1" Then
Me.txtVal1 = Tank1(0, 0)
Me.txtVal2 = Tank1(1, 0)
Else
Me.txtVal1 = Tank2(0, 0)
Me.txtVal2 = Tank2(1, 0)
End If
End Sub
[/highlight]
Như vậy anh bỏ cái combobox trên form đi luôn cũng được.
 
Lần chỉnh sửa cuối:
Upvote 0
Em gửi file mẫu lên các Bác xem giúp em với.
 

File đính kèm

Upvote 0
Em gửi file mẫu lên các Bác xem giúp em với.
Cũng trên nguyên tắc gán như vậy mà anh!
1. Đặt 1 name là vùng chứa tank (ba cột và 5 hàng, không bao gồm tiêu đề)
2. Set thuộc tính RowSource cho combobox là tên Name vừa đặt
3. Set thuộc tính columncount của combobox tương ứng với số cột của Name.
4. Khi gán xuống textbox:
Textbox = Combobox.column(i)
Trong đó i là cột nào cần gán vào textbox nào.
Lưu ý: cột đầu tiên của combobox có giá trị là 0
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cũng trên nguyên tắc gán như vậy mà anh!
1. Đặt 1 name là vùng chứa tank (ba cột và 5 hàng, không bao gồm tiêu đề)
2. Set thuộc tính RowSource cho combobox là tên Name vừa đặt
3. Set thuộc tính columncount của combobox tương ứng với số cột của Name.
4. Khi gán xuống textbox:
Textbox = Combobox.column(i)
Trong đó i là cột nào cần gán vào textbox nào.
Lưu ý: cột đầu tiên của combobox có giá trị là 0
Cám ơn Ca-dafi nhiều.
Ý của mình là cho vùng dữ liệu của các tank vào trong code và từ đó tạo ra một danh sách để chọn (Trong bảng tính không có số liệu đó mà định sẵn trong code). Khi chọn loại tank nào thì giá trị loại tank đó điền vào hai textbox chiều dài và bán kính.
 
Upvote 0
Cám ơn Ca-dafi nhiều.
Ý của mình là cho vùng dữ liệu của các tank vào trong code và từ đó tạo ra một danh sách để chọn (Trong bảng tính không có số liệu đó mà định sẵn trong code). Khi chọn loại tank nào thì giá trị loại tank đó điền vào hai textbox chiều dài và bán kính.
Có phải Salam muốn khai báo range trên vào vba luôn, cụ thể như là
PHP:
Option Base 0
Dim DoDai As Variant, BanKinh As Variant, Tank As Variant
Dim vt As Long
Private Sub ComboBox1_Change()
vt = Me.ComboBox1.ListIndex
Me.txtBK.Value = BanKinh(vt)
Me.txtDai.Value = DoDai(vt)
End Sub

Private Sub CommandButton2_Click()
Me.txtBK.Text = ""
Me.txtCao.Text = ""
Me.txtDai.Text = ""
Me.txtLit.Text = ""
Me.txtBK.SetFocus
End Sub
Private Sub CommandButton3_Click()
End
End Sub
Private Sub UserForm_Initialize()
'Phan nay khai bao
DoDai = Array(250, 300, 200, 300, 500)
BanKinh = Array(50, 100, 200, 400, 200)
Tank = Array("tank1", "tank2", "tank3", "tank4", "tank5")
With Me.ComboBox1
    .ColumnCount = 1
     .ListRows = UBound(Tank) + 1
    .List = Tank
End With
End Sub
 

File đính kèm

Upvote 0
Có phải Salam muốn khai báo range trên vào vba luôn, cụ thể như là
PHP:
Option Base 0

Private Sub UserForm_Initialize()
'Phan nay khai bao
DoDai = Array(250, 300, 200, 300, 500)
BanKinh = Array(50, 100, 200, 400, 200)
Tank = Array("tank1", "tank2", "tank3", "tank4", "tank5")
With Me.ComboBox1
    .ColumnCount = 1
     .ListRows = UBound(Tank) + 1
    .List = Tank
End With
End Sub
Đúng rồi Cám ơn Anh Thunghi cùng mọi người nhiều
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Thêm 1 cách dùng combobox 3 column, làm thêm code cho nút "Tính" với công thức giả định.
 

File đính kèm

Upvote 0
Không nên lạm dụng biến toàn cục, vì sẽ chiếm dụng bộ nhớ và khó kiểm soát.
Để cho dễ dàng ta nên dùng 1 Function để tính toán cho dễ dàng.

PHP:
Option Base 0
Private Sub ComboBox1_AfterUpdate()
    Dim ViTri As Long
    ViTri = Me.ComboBox1.ListIndex + 1
    Me.txtBK.Value = KQ("BanKinh", ViTri)
    Me.txtDai.Value = KQ("DoDai", ViTri)
End Sub
________________________________________________________
Private Sub CommandButton2_Click()
    Me.txtBK.Text = ""
    Me.txtCao.Text = ""
    Me.txtDai.Text = ""
    Me.txtLit.Text = ""
    Me.txtBK.SetFocus
End Sub
___________________________________________________________
Private Sub CommandButton3_Click()
    End
End Sub
____________________________________________________________
Private Sub UserForm_Initialize()
'Phan nay khai bao
    Dim Tank As Variant
    Tank = Array("tank1", "tank2", "tank3", "tank4", "tank5")
    With Me.ComboBox1
        .ColumnCount = 1
        .ListRows = UBound(Tank) + 1
        .List = Tank
    End With
End Sub
________________________________________________________
Function KQ(Loai As String, STT As Long) As String
    If STT = 0 Then Exit Function
    Select Case UCase$(Loai)
    Case "BANKINH": KQ = Choose(STT, 50, 100, 200, 400, 200)
    Case "DODAI": KQ = Choose(STT, 250, 300, 200, 300, 500)
    End Select
End Function

Và nên tránh dùng Combobox_Change vì nếu không khi sử dụng các sự kiện sau này thì Event này rất dễ bị kích hoạt. Thay vào đó nên dùng AfterUpdate sẽ tiện lợi hơn.

--CV--
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom