viết code cho Form tìm kiếm (3 người xem)

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

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

Em thấy Anh QuangHai1969, be09 đang xem bài của em mà , Sao không giúp em với!!!!!
Nếu là xử lý cho công việc thì mình chỉ làm thế này. Mình không thích màu mè.
Code chỉ nhiêu đây là xong chuyện. Khi nào đủ nội công thì phát triển thêm
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
If Not Intersect(Target, [B3:F3]) Is Nothing Then
   [B4:F5000].AdvancedFilter 1, [B2:F3]
End If
Application.ScreenUpdating = True
End Sub
Trong file đính kèm, thử nhập nội dụng vào 1 trong các ô từ B3 đến F3
 

File đính kèm

Làm trên Form Anh giúp em với, Trên sheet thì cũng chính Anh đã giúp em rồi. Trong form có đoạn code này để sửa mà bị lỗi:
Mã:
rivate Sub CmdSua_Click() <-----code này của Bác SwitomDim 
currRow As Long    
    currRow = ListBox1.List(ListBox1.ListIndex, ListBox1.ColumnCount)   <------lỗi dòng này
    ListBox1.List(ListBox1.ListIndex, 1) = tbx1.Text
    ListBox1.List(ListBox1.ListIndex, 2) = tbx2.Text
    ListBox1.List(ListBox1.ListIndex, 4) = tbx3.Text    
    With Sheet2
        .Range("E" & currRow).Value = tbx1.Text
        .Range("F" & currRow).Value = tbx2.Text
        .Range("H" & currRow).Value = tbx3.Text
    End With
End Sub
và code tính tổng cho textbox"tổng số lượng nhận":
Mã:
For j = 1 To Me.ListBox1.ListCount  <-----code này của Thấy Ndu    
tbxTSLN = Val(tbxTSLN) + Val(Me.ListBox1.List(j - 1, 4))
Next
nhưng khi chạy nó cứ cộng tổng của nhiều lần chọn "Xưởng" ví dụ như đơt đầu chọn xưởng "Giao" là 872,thì đợt 2 chọn "Gấm"thì nó lại lấy 872+ sl của"Gấm" cứ thế tiếp tục
Mong các AC giúp đỡ!!!!
 
Làm trên Form Anh giúp em với, Trên sheet thì cũng chính Anh đã giúp em rồi.
và code tính tổng cho textbox"tổng số lượng nhận":
Mã:
For j = 1 To Me.ListBox1.ListCount  <-----code này của Thấy Ndu    
tbxTSLN = Val(tbxTSLN) + Val(Me.ListBox1.List(j - 1, 4))
Next
nhưng khi chạy nó cứ cộng tổng của nhiều lần chọn "Xưởng" ví dụ như đơt đầu chọn xưởng "Giao" là 872,thì đợt 2 chọn "Gấm"thì nó lại lấy 872+ sl của"Gấm" cứ thế tiếp tục
Mong các AC giúp đỡ!!!!

Mình lười đọc và sửa code lắm
Theo mình thì sửa chỗ này như thế này
PHP:
   tbxTSLN = Empty
   For i = 1 To Me.ListBox1.ListCount
      tbxTSLN = Val(tbxTSLN) + Val(Me.ListBox1.List(i - 1, 4))
   Next
 
Em lấy code của Anh thì được, nhưng khi em định dạng phần ngàn cho "Tổng số lượng nhận"(#,##0) thì có sai
Chưa định dạng phần ngàn:

form1.JPGform2.JPG
Khi đã định dạng phần ngàn:
form1-2.JPGform2-2.JPG
Mong Anh giúp chỉnh. code dịnh dạng phần ngàn:
Mã:
Me.ListBox1.List(k - 1, 4) = Format(ArrPH(i, 5), "#,##0")
Mã:
tbxTSLN = Format(Val(tbxTSLN) + Val(Me.ListBox1.List(j - 1, 4)), "#,##0")
 
Mọi người giúp em nút "Sửa" với. Tại sao lại bị lỗi ngay dòng CrrRow...... . Lỗi Run-Time error "94"
Invalid use of Null
Mã:
 Private Sub Cmd_Sua_Click()
 Dim currRow As Long
    currRow = ListBox1.List(ListBox1.ListIndex, ListBox1.ColumnCount) [B][COLOR=#ff0000] <----lỗi chổ này[/COLOR][/B]
    ListBox1.List(ListBox1.ListIndex, 1) = tbx1.Text
    ListBox1.List(ListBox1.ListIndex, 2) = tbx2.Text
    ListBox1.List(ListBox1.ListIndex, 3) = tbx3.Text
    ListBox1.List(ListBox1.ListIndex, 4) = tbx4.Text
    With Sheet2
        .Range("E" & currRow).Value = tbx1.Text
        .Range("F" & currRow).Value = tbx2.Text
        .Range("G" & currRow).Value = tbx3.Text
        .Range("H" & currRow).Value = tbx4.Text
    End With
End Sub
 
Mọi người giúp em nút "Sửa" với. Tại sao lại bị lỗi ngay dòng CrrRow...... . Lỗi Run-Time error "94"
Invalid use of Null
Mã:
 Private Sub Cmd_Sua_Click()
 Dim currRow As Long
    currRow = ListBox1.List(ListBox1.ListIndex, ListBox1.ColumnCount) [B][COLOR=#ff0000] <----lỗi chổ này[/COLOR][/B]
    ListBox1.List(ListBox1.ListIndex, 1) = tbx1.Text
    ListBox1.List(ListBox1.ListIndex, 2) = tbx2.Text
    ListBox1.List(ListBox1.ListIndex, 3) = tbx3.Text
    ListBox1.List(ListBox1.ListIndex, 4) = tbx4.Text
    With Sheet2
        .Range("E" & currRow).Value = tbx1.Text
        .Range("F" & currRow).Value = tbx2.Text
        .Range("G" & currRow).Value = tbx3.Text
        .Range("H" & currRow).Value = tbx4.Text
    End With
End Sub

Bạn sửa code gốc loạn cào cào thì đừng hy vọng code chạy trúng. Trừ khi bạn am hiểu từng dòng lệnh
1. Để định dạng dấu phân cách ngàn thì
PHP:
   tbxTSLN = Empty
   For i = 1 To Me.ListBox1.ListCount
      tbxTSLN = Val(tbxTSLN) + Val(Me.ListBox1.List(i - 1, 4))
   Next
   tbxTSLN = Format(tbxTSLN, "#,##0")
2. Sửa cho code hết lỗi thì thế này:
currRow = ListBox1.List(ListBox1.ListIndex, ListBox1.ColumnCount - 1)

Nhưng chắc chắn không đúng ý của bạn đâu. Vì giá trị CurrRow hiện tại là số lượng chứ không phải là chỉ số dòng như bạn chú thích.
 
Anh QuangHai1969 giúp em định dạng ngày của textbox_ngay là "dd/mm/yyyy" thì sửa code làm sao:
code ghi vào listbox:
Mã:
Private Sub ghilistbox1()
If Trim(tbx_ngay) = "" Then
MsgBox ("Chua co nhap Ngay "), , "GPE": Exit Sub
End If
With ListBox1
.ColumnCount = 4
 .ColumnWidths = "100;100;190;70"
.AddItem tbx_ngay
.List(.ListCount - 1, 1) = tbx_sgd
.List(.ListCount - 1, 2) = Cbx_MT
.List(.ListCount - 1, 3) = Format(tbx_sl, "#,##0")
.ListIndex = .ListCount - 1
End With
Cbx_MT = Empty
tbx_sl = Empty
Cbx_MT.SetFocus
End Sub
code ghi vào sheet:
Mã:
Private Sub cmdghisheet_Click()
Dim i As Integer, n As Long
    'If tbx_dh = "" Then MsgBox ("Ban chua nhap Don Hang"), , "GPE": Exit Sub
    If ListBox1.ListCount = 0 Then MsgBox ("ban chua cap nhat Noi dung vao Listbox"), , "GPE": Exit Sub


Application.ScreenUpdating = False 'giup code chay. nhanh hon
    irow = Sheet3.[H65536].End(3)(2).Row  'xac dinh row cuoi cung` chua' du~ lieu
    For i = 0 To ListBox1.ListCount - 1
        With ListBox1
            Sheet3.Cells(irow + n, 8) = .List(i, 0)      'Ngay
            Sheet3.Cells(irow + n, 9) = .List(i, 1)      'SGD
            Sheet3.Cells(irow + n, 10) = .List(i, 2)      'MT
            Sheet3.Cells(irow + n, 11) = .List(i, 3)      'SL
        End With
        n = n + 1
    Next
    tbx_ngay = ""
    tbx_sgd = ""
    Cbx_MT = ""
    tbx_sl = ""
    ListBox1.Clear
    tbx_ngay.SetFocus
Application.ScreenUpdating = True
MsgBox ("cap nhat xong"), , "GPE"
End Sub
Mong anh giúp!!!!
 
Anh QuangHai1969 giúp em định dạng ngày của textbox_ngay là "dd/mm/yyyy" thì sửa code làm sao:
code ghi vào listbox:
Mã:
Private Sub ghilistbox1()
If Trim(tbx_ngay) = "" Then
MsgBox ("Chua co nhap Ngay "), , "GPE": Exit Sub
End If
With ListBox1
.ColumnCount = 4
 .ColumnWidths = "100;100;190;70"
.AddItem tbx_ngay
.List(.ListCount - 1, 1) = tbx_sgd
.List(.ListCount - 1, 2) = Cbx_MT
.List(.ListCount - 1, 3) = Format(tbx_sl, "#,##0")
.ListIndex = .ListCount - 1
End With
Cbx_MT = Empty
tbx_sl = Empty
Cbx_MT.SetFocus
End Sub
code ghi vào sheet:
Mã:
Private Sub cmdghisheet_Click()
Dim i As Integer, n As Long
    'If tbx_dh = "" Then MsgBox ("Ban chua nhap Don Hang"), , "GPE": Exit Sub
    If ListBox1.ListCount = 0 Then MsgBox ("ban chua cap nhat Noi dung vao Listbox"), , "GPE": Exit Sub


Application.ScreenUpdating = False 'giup code chay. nhanh hon
    irow = Sheet3.[H65536].End(3)(2).Row  'xac dinh row cuoi cung` chua' du~ lieu
    For i = 0 To ListBox1.ListCount - 1
        With ListBox1
            Sheet3.Cells(irow + n, 8) = .List(i, 0)      'Ngay
            Sheet3.Cells(irow + n, 9) = .List(i, 1)      'SGD
            Sheet3.Cells(irow + n, 10) = .List(i, 2)      'MT
            Sheet3.Cells(irow + n, 11) = .List(i, 3)      'SL
        End With
        n = n + 1
    Next
    tbx_ngay = ""
    tbx_sgd = ""
    Cbx_MT = ""
    tbx_sl = ""
    ListBox1.Clear
    tbx_ngay.SetFocus
Application.ScreenUpdating = True
MsgBox ("cap nhat xong"), , "GPE"
End Sub
Mong anh giúp!!!!
Bạn tham khảo cách này. Code trong file của bạn mình đọc không nổi nên không dám sửa
 

File đính kèm

File của Anh QuangHai1969 có điều kiện
Mã:
dk1 = Me.Cmd_XN & Me.Cmd_DH & Me.ComboBox1
dk2 = Arr(i, 2) & Arr(i, 3) & Month(Arr(i, 1))
Mong Anh chỉnh lại dùm là điều kiện:
Me.Cmd_XN Or Me.Cmd_DH
Me.Cmd_XN & Me.Combobox1
Tức là chọn Xuong hoặc Don Hang đều lọc
Còn Tháng(Combobox1) thì là điều kiện và (&) với Cmd_XN
 
Web KT

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

Back
Top Bottom