Vòng lặp cho 2 button!

Liên hệ QC

son0611excel

Thành viên chính thức
Tham gia
3/1/20
Bài viết
69
Được thích
11
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào tất cả anh chị ạ, hiện tại em đang bị vướng về vòng lặp giữa 2 button.

Hiện trạng nó như vầy ạ, khi em nhấn đặt hàng linh kiện thì nó sẽ hiện ra list linh kiện mà em đang đặt hàng, nhấn đặt hàng dầu mỡ thì
nó sẽ hiện list dầu mỡ em đặt hàng, nhưng khi bấm xong thì bấm lại đặt hàng linh kiện thì nó không có hiện lên nữa ạ!

Em nghĩ nó thiếu vòng lặp lại ở đâu đó mà em không biết, mong cách anh chị chỉ giáo ạ!

Bên dưới là lệnh của 2 button ạ!

- Button đặt hàng linh kiện:

Private Sub CommandButton16_Click()
Workbooks.Application.Visible = False
Sheet6.Visible = xlSheetVisible

Sheet21.Visible = xlSheetHidden
Sheet15.Visible = xlSheetHidden
Sheet2.Visible = xlSheetHidden
Sheet7.Visible = xlSheetHidden
Sheet10.Visible = xlSheetHidden
Sheet31.Visible = xlSheetHidden
Sheet1.Visible = xlSheetHidden
Sheet8.Visible = xlSheetHidden
TextBox8.Text = "BUY"

End Sub

-Listbox của button đặt hàng linh kiện:

Sub TextBox8_Change()
Dim i, Tx, j

Sheet6.Activate

Tx = TextBox8.Value
ListBox7.Clear
For i = 1 To Range("G65536").End(xlUp).Row
If Tx = "" Then
ListBox7.Clear
Else
If InStr(1, Cells(i, 7).Value, Tx) Then
ListBox7.AddItem
ListBox7.ColumnWidths = "140 pt;150 pt;110 pt;75 pt;60 pt"
ListBox7.List(j, 0) = Cells(i, 1).Value
ListBox7.List(j, 1) = Cells(i, 2).Value
ListBox7.List(j, 2) = Cells(i, 3).Value
ListBox7.List(j, 3) = Cells(i, 5).Value
ListBox7.List(j, 4) = Cells(i, 8).Value
j = j + 1
End If
End If
Next
End Sub


- Button đặt hàng dầu mỡ:

Private Sub CommandButton17_Click()
Workbooks.Application.Visible = False
Sheet8.Visible = xlSheetVisible

Sheet21.Visible = xlSheetHidden
Sheet15.Visible = xlSheetHidden
Sheet2.Visible = xlSheetHidden
Sheet7.Visible = xlSheetHidden
Sheet10.Visible = xlSheetHidden
Sheet31.Visible = xlSheetHidden
Sheet1.Visible = xlSheetHidden
Sheet6.Visible = xlSheetHidden
TextBox10.Text = "BUY"

End Sub

-Listbox của button đặt hàng dầu mỡ:

Sub TextBox10_Change()
Dim n, Tx, j

Sheet8.Activate

Tx = TextBox10.Value
ListBox7.Clear
For n = 1 To Range("G65536").End(xlUp).Row
If Tx = "" Then
ListBox7.Clear

Else
If InStr(1, Cells(n, 7).Value, Tx) Then
ListBox7.AddItem
ListBox7.ColumnWidths = "140 pt;150 pt;110 pt;75 pt;60 pt"
ListBox7.List(j, 0) = Cells(n, 1).Value
ListBox7.List(j, 1) = Cells(n, 2).Value
ListBox7.List(j, 2) = Cells(n, 3).Value
ListBox7.List(j, 3) = Cells(n, 5).Value
ListBox7.List(j, 4) = Cells(n, 8).Value

j = j + 1

End If
End If
Next
End Sub


1619491781133.png
1619492174474.png
 
Tốt nhất là bạn kèm file lên.
 
Upvote 0
Hiện trạng nó như vầy ạ, khi em nhấn đặt hàng linh kiện thì nó sẽ hiện ra list linh kiện mà em đang đặt hàng, nhấn đặt hàng dầu mỡ thì
nó sẽ hiện list dầu mỡ em đặt hàng, nhưng khi bấm xong thì bấm lại đặt hàng linh kiện thì nó không có hiện lên nữa ạ!
Sửa sơ lại theo code có sẳn của bạn. Bỏ luôn việc gán trị cho TextBox8, 10 và các sự kiện cho nó.


Mã:
Private Sub CommandButton16_Click()
    Workbooks.Application.Visible = False
    Call PopulateLB("Part")
End Sub

Private Sub CommandButton17_Click()
    Workbooks.Application.Visible = False
    Call PopulateLB("Oil")
End Sub

'-------------------------------------------------------------

Sub PopulateLB(sProductName As String)
    Dim i As Long, j As Long

    ListBox7.Clear

    Select Case sProductName
    Case "Part"
        Sheet6.Activate
    Case "Oil"
        Sheet8.Activate
    End Select

    For i = 1 To Range("G65536").End(xlUp).Row
        If InStr(1, Cells(i, 7).Value, "BUY") Then
            ListBox7.AddItem
            ListBox7.ColumnWidths = "140 pt;150 pt;110 pt;75 pt;60 pt"
            ListBox7.List(j, 0) = Cells(i, 1).Value
            ListBox7.List(j, 1) = Cells(i, 2).Value
            ListBox7.List(j, 2) = Cells(i, 3).Value
            ListBox7.List(j, 3) = Cells(i, 5).Value
            ListBox7.List(j, 4) = Cells(i, 8).Value
            j = j + 1
        End If
    Next
End Sub
 
Upvote 0
Sửa sơ lại theo code có sẳn của bạn. Bỏ luôn việc gán trị cho TextBox8, 10 và các sự kiện cho nó.


Mã:
Private Sub CommandButton16_Click()
    Workbooks.Application.Visible = False
    Call PopulateLB("Part")
End Sub

Private Sub CommandButton17_Click()
    Workbooks.Application.Visible = False
    Call PopulateLB("Oil")
End Sub

'-------------------------------------------------------------

Sub PopulateLB(sProductName As String)
    Dim i As Long, j As Long

    ListBox7.Clear

    Select Case sProductName
    Case "Part"
        Sheet6.Activate
    Case "Oil"
        Sheet8.Activate
    End Select

    For i = 1 To Range("G65536").End(xlUp).Row
        If InStr(1, Cells(i, 7).Value, "BUY") Then
            ListBox7.AddItem
            ListBox7.ColumnWidths = "140 pt;150 pt;110 pt;75 pt;60 pt"
            ListBox7.List(j, 0) = Cells(i, 1).Value
            ListBox7.List(j, 1) = Cells(i, 2).Value
            ListBox7.List(j, 2) = Cells(i, 3).Value
            ListBox7.List(j, 3) = Cells(i, 5).Value
            ListBox7.List(j, 4) = Cells(i, 8).Value
            j = j + 1
        End If
    Next
End Sub
Cảm ơn anh chị nhiều lắm ạ, em đã làm được rồi, chúc anh chị nhiều sức khỏe <3
 
Upvote 0
Web KT

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

Back
Top Bottom