Xin các thầy chỉ giúp em code đếm số dòng có trong 1 listbox và số dòng hiện trên 1 textbox hoặc label ạ? Tức là cứ trong listbox tăng 1 dong thì sẽ tự up số dòng lên lb hoặc tb. Cảm ơn các thầy?
Đếm số dòng trong listbox thì dùng cái này (Giả sử là Listbox1): Listbox1.ListCount
Còn việc tăng số dòng trong listbox sẽ tự động tăng số hiển thị trong textbox thì bạn có thể dùng 1 trong 2 cách:
1. Ở đoạn code mà bạn AddItem, sau khi AddItem, bạn dùng lệnh sau (Giả sử là textbox1): Textbox1.Value=Val(Textbox1.Value)+1
2. Dùng thủ tục Listbox_Change(), khi đó dùng lệnh sau: Textbox1.Value=Listbox1.ListCount
Dùng thủ tục Listbox_Change() sẽ hay hơn vì áp dụng được cả trong trường hợp RemoveItem
Đếm số dòng trong listbox thì dùng cái này (Giả sử là Listbox1): Listbox1.ListCount
Còn việc tăng số dòng trong listbox sẽ tự động tăng số hiển thị trong textbox thì bạn có thể dùng 1 trong 2 cách:
1. Ở đoạn code mà bạn AddItem, sau khi AddItem, bạn dùng lệnh sau (Giả sử là textbox1): Textbox1.Value=Val(Textbox1.Value)+1
2. Dùng thủ tục Listbox_Change(), khi đó dùng lệnh sau: Textbox1.Value=Listbox1.ListCount
Dùng thủ tục Listbox_Change() sẽ hay hơn vì áp dụng được cả trong trường hợp RemoveItem
Nếu bạn dùng trong form thì cái ScreenUpdating sẽ không có tác dụng gì đâu nhé!
Nếu Add vào list thì thủ tục nào để add cho nó phải có dòng cập nhật trên Label1 luôn, chứ bản thân ListBox không phát sinh sự kiện Change khi Add đâu nhé!
Trường hợp này tôi dùng nút lệnh để Add List thì tôi đặt thủ tục ở trong đó luôn!
Mã:
Private Sub CommandButton1_Click()
ListBox1.AddItem "Hoang Trong Nghia"
Label1.Caption = ListBox1.ListCount
End Sub
Thanks anh em đã làm đc nhưng k cần thêm button nữa vì kick trưc tiếp vào listbox nó cũng update anh ạ, Xin hỏi anh trường hợp muốn ẩn, hiện 1 label có chữ theo điều kiện textbox đó: nếu tb >=0 thì hiện label có chữ ABC, Nếu tb<=0 thì label hide?
Thanks anh em đã làm đc nhưng k cần thêm button nữa vì kick trưc tiếp vào listbox nó cũng update anh ạ, Xin hỏi anh trường hợp muốn ẩn, hiện 1 label có chữ theo điều kiện textbox đó: nếu tb >=0 thì hiện label có chữ ABC, Nếu tb<=0 thì label hide?
1) Mỗi lần click vào ListBox thì mới cập nhật thì mất nhiều thao tác quá, vã lại, người khác xài thì chả biết điều này (chỉ là ý kiến cá nhân).
2) Mâu thuẫn chỗ tb >=0 và tb<=0, nếu nó bằng 0 thì chã biết nó thuộc phe nào nữa!
3) nếu tb > 0 thì hiện label thì dùng sự kiện Change của TextBox:
Mã:
Private Sub TextBox1_Change()
Label1.Visible = (Val(TextBox1) > 0)
End Sub
4) Nếu luôn luôn là chữ ABC trên Label thì khi thiết kế Form ta gõ trước vô Label luôn, còn mỗi thay đổi (dựa vào sự thay đổi của TextBox) thì thủ tục sẽ như sau:
Mã:
Private Sub TextBox1_Change()
Label1.Caption = "ABC"
Label1.Visible = (Val(TextBox1) > 0)
End Sub
1) Mỗi lần click vào ListBox thì mới cập nhật thì mất nhiều thao tác quá, vã lại, người khác xài thì chả biết điều này (chỉ là ý kiến cá nhân).
2) Mâu thuẫn chỗ tb >=0 và tb<=0, nếu nó bằng 0 thì chã biết nó thuộc phe nào nữa!
3) nếu tb > 0 thì hiện label thì dùng sự kiện Change của TextBox:
Mã:
Private Sub TextBox1_Change()
Label1.Visible = (Val(TextBox1) > 0)
End Sub
4) Nếu luôn luôn là chữ ABC trên Label thì khi thiết kế Form ta gõ trước vô Label luôn, còn mỗi thay đổi (dựa vào sự thay đổi của TextBox) thì thủ tục sẽ như sau:
Mã:
Private Sub TextBox1_Change()
Label1.Caption = "ABC"
Label1.Visible = (Val(TextBox1) > 0)
End Sub
Đây là file em đang tự học có 3 vấn đề xảy ra anh chị tìm hiểu giúp đỡ chỉ giúp em.
1. Khi nhập dữ liệu và enter đến button Gán thì nó sẽ gán liên tục mà không quay trở lại nhập tiếp dữ liệu?
2. Ẩn hiện label1 thì nó k tự update khi Lbox thay đổi dù đã có thủ tục change.
3. Chữ bị lỗi font ở label 1 dù đã đổi sang vernada(vietnamese) và dùng unicode vietnamese locale CP 1285?
Xin anh chị chỉ giúp
Đây là file em đang tự học có 3 vấn đề xảy ra anh chị tìm hiểu giúp đỡ chỉ giúp em.
1. Khi nhập dữ liệu và enter đến button Gán thì nó sẽ gán liên tục mà không quay trở lại nhập tiếp dữ liệu?
2. Ẩn hiện label1 thì nó k tự update khi Lbox thay đổi dù đã có thủ tục change.
3. Chữ bị lỗi font ở label 1 dù đã đổi sang vernada(vietnamese) và dùng unicode vietnamese locale CP 1285?
Xin anh chị chỉ giúp
Như anh Trọng Nghĩa đã nói, Listbox_Change() không có hiệu ứng gì, vì thế trong lệnh gán bạn thêm câu lệnh TextBox1.Value = Val(TextBox1.Value) + 1 sau khi đã gán xong cho listbox.
Còn cái vụ "gán liên tục" mà bạn nói, thì sau khi gán xong, bạn cần thêm các câu lệnh xóa textbox và setforcus cho textbox1
Muốn thể hiện font Unicode thì có 2 cách:
1. Dùng trực tiếp bộ mã Unicode và dùng hàm để chuyển, nhưng cách này tốn thời gian vì phải nhập mã cho từng ký tự
2. Dùng bộ mã TCVN3 nhập sau đó dùng hàm chuyển mã từ TCVN3 sang Unicode (Hàm này trên diễn đàn có đấy bạn).
Như anh Trọng Nghĩa đã nói, Listbox_Change() không có hiệu ứng gì, vì thế trong lệnh gán bạn thêm câu lệnh TextBox1.Value = Val(TextBox1.Value) + 1 sau khi đã gán xong cho listbox.
Còn cái vụ "gán liên tục" mà bạn nói, thì sau khi gán xong, bạn cần thêm các câu lệnh xóa textbox và setforcus cho textbox1
Muốn thể hiện font Unicode thì có 2 cách:
1. Dùng trực tiếp bộ mã Unicode và dùng hàm để chuyển, nhưng cách này tốn thời gian vì phải nhập mã cho từng ký tự
2. Dùng bộ mã TCVN3 nhập sau đó dùng hàm chuyển mã từ TCVN3 sang Unicode (Hàm này trên diễn đàn có đấy bạn).
Mình đã thực hiện được chỗ chuyển mã tcvn3 và gán vào listbox tuy nhiên cái phần không tự update listbox khi mới xuất hiện 1 dòng đến n dòng thì k làm đc:
Khi gán vào tb_change thì nó tạo 1 phép cộng cho dòng thứ 2 lên 225
Khi gán vào lb_change thì nó tạo phép tính n+1 tức là dòng 1 thì nó sẽ báo bằng 2 vậy mong bạn xem giúp mình.
Mình đã thực hiện được chỗ chuyển mã tcvn3 và gán vào listbox tuy nhiên cái phần không tự update listbox khi mới xuất hiện 1 dòng đến n dòng thì k làm đc:
Khi gán vào tb_change thì nó tạo 1 phép cộng cho dòng thứ 2 lên 225
Khi gán vào lb_change thì nó tạo phép tính n+1 tức là dòng 1 thì nó sẽ báo bằng 2 vậy mong bạn xem giúp mình.
Hình như bạn chưa hiểu những gì người ta nói thì phải?
Phân tích:
- ListBox thay đổi nhờ vào đâu? Có phải là nhờ vào việc bạn bấm cái CommandButton không?
- Vậy code của CommandButton ấy là gì? Có phải là cái này không:
Mã:
Private Sub CMGan_Click()
On Error Resume Next
Dim i As Long
With Me
If .TBTitte01 = "" Or .TBTitte02 = "" Then Exit Sub
i = .LBox.ListCount
.LBox.AddItem (Format(i + 1, "00")) ' Cot dau tien
.LBox.List(i, 1) = .TBTitte01 ' Cot thu 2
.LBox.List(i, 2) = .TBTitte02 ' Cot thu 3
End With
End Sub
Vậy bạn chỉ làm có mỗi việc là thêm đoạn code mà Hoàng Trọng Nghĩa đã gợi ý vào cuối code trên là được rồi
Mã:
Private Sub CMGan_Click()
On Error Resume Next
Dim i As Long
With Me
If .TBTitte01 = "" Or .TBTitte02 = "" Then Exit Sub
i = .LBox.ListCount
.LBox.AddItem (Format(i + 1, "00")) ' Cot dau tien
.LBox.List(i, 1) = .TBTitte01 ' Cot thu 2
.LBox.List(i, 2) = .TBTitte02 ' Cot thu 3
End With
[COLOR=#ff0000][B]TextBox1.Value = LBox.ListCount[/B][/COLOR]
End Sub
Private Sub CMGan_Click()
On Error Resume Next
Dim i As Long
With Me
If .TBTitte01 = "" Or .TBTitte02 = "" Then Exit Sub
i = .LBox.ListCount
.LBox.AddItem (Format(i + 1, "00")) ' Cot dau tien
.LBox.List(i, 1) = .TBTitte01 ' Cot thu 2
.LBox.List(i, 2) = .TBTitte02 ' Cot thu 3
TextBox1.Value = Val(TextBox1.Value) + 1
TBTitte01.Value = ""
TBTitte02.Value = ""
TBTitte01.SetFocus
End With
End Sub
Thậm chí chả cần cái Commandbutton gán làm gì, bạn chỉ cần thủ tục sau cho:
PHP:
Private Sub TBTitte02_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long
If KeyCode = 13 Then
With Me
If .TBTitte01 = "" Or .TBTitte02 = "" Then Exit Sub
i = .LBox.ListCount
.LBox.AddItem (Format(i + 1, "00")) ' Cot dau tien
.LBox.List(i, 1) = .TBTitte01 ' Cot thu 2
.LBox.List(i, 2) = .TBTitte02 ' Cot thu 3
TextBox1.Value = Val(TextBox1.Value) + 1
TBTitte01.Value = ""
TBTitte02.Value = ""
TBTitte01.SetFocus
End With
End If
End Sub
Đây là file em đang tự học có 3 vấn đề xảy ra anh chị tìm hiểu giúp đỡ chỉ giúp em.
1. Khi nhập dữ liệu và enter đến button Gán thì nó sẽ gán liên tục mà không quay trở lại nhập tiếp dữ liệu?
2. Ẩn hiện label1 thì nó k tự update khi Lbox thay đổi dù đã có thủ tục change.
3. Chữ bị lỗi font ở label 1 dù đã đổi sang vernada(vietnamese) và dùng unicode vietnamese locale CP 1285?
Xin anh chị chỉ giúp
Private Sub UserForm_Initialize()
TextBox1 = Sheet1.Range("A65536").End(xlUp).Row
End Sub
Private Sub CMGan_Click()
If TBTitte01 = "" Then
MsgBox "Chua nhap Ten!"
TBTitte01.SetFocus
ElseIf TBTitte02 = "" Then
MsgBox "Chua nhap Tuoi!"
TBTitte02.SetFocus
Else
Dim idx As Long
With LBox
idx = .ListCount
.AddItem Val(TextBox1)
.List(idx, 1) = TBTitte01
.List(idx, 2) = TBTitte02
.ListIndex = idx
End With
TextBox1 = Val(TextBox1) + 1
CMSave.Enabled = True
TBTitte01 = ""
TBTitte02 = ""
TBTitte01.SetFocus
End If
End Sub
Private Sub CMExit_Click()
Unload Me
End Sub
Private Sub CMSave_Click()
Dim idx As Long
idx = LBox.ListCount
If idx > 0 Then
Sheet1.Range("A65536").End(xlUp).Offset(1).Resize(idx, 3) = LBox.List
LBox.Clear
CMSave.Enabled = False
End If
End Sub
Bạn xem file và thử thực hiện trên đó xem thế nào nhé! Tôi thực hiện code trên form khác!
Các thầy cho em hỏi thêm 1 chút về msgbox?
Có cách nào chuyển các nút lệnh yes, no, cancel.. sang tiếng việt hoặc sang 1 tên nào khác được không ạ.
Ví dụ: nút yes -> sửa(chấp nhận); no -> xóa; Cancel -> bỏ qua.
Các thầy cho em hỏi thêm 1 chút về msgbox?
Có cách nào chuyển các nút lệnh yes, no, cancel.. sang tiếng việt hoặc sang 1 tên nào khác được không ạ.
Ví dụ: nút yes -> sửa(chấp nhận); no -> xóa; Cancel -> bỏ qua.