viết code cho các nút trong Form Bán Hàng (1 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

quykh

Chim non
Tham gia
7/9/11
Bài viết
381
Được thích
46
Giới tính
Nữ
Nghề nghiệp
Công Nhân
Em tập làm Form Bán Hàng, mong các AC viết code cho nút "Xóa Mặt hàng" (vì có thể chọn lộn mặt hàng) và nút "Ghi vào sheet" (trong file của em code chỉ ghi từ listbox vào sheet1) em muốn ghi vào sheet 2 (gồm cả ngày và số phiếu), và nút "Lập phiếu mới" Mong các AC giúp đỡ!!!!
 
Lần chỉnh sửa cuối:
Em thấy đề tài" Userform "bây giờ ít người quan tâm không "Mặn mà" như những năm 2009-2011. Nhưng em thấy nó vẫn "Pro" hơn.
 
em viết code cho nút "ghi vào sheet" như sau:
Mã:
Private Sub ghisheet_Click()
Dim i As Integer, N As Long


    If Ngay = "" Then MsgBox ("Ban chua nhap Ngay"), vbExclamation: Exit Sub
    If ListBox1.ListCount = 0 Then MsgBox ("ban chua cap nhat Noi dung CT vao Listbox"), vbExclamation: Exit Sub


Application.ScreenUpdating = False 'giup code chay. nhanh hon
    iRow = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row 'xac dinh row cuoi cung` chua' du~ lieu


    For i = 0 To ListBox1.ListCount - 1
    Cells(iRow + N, 1) = CDate(Ngay)
        Cells(iRow + N, 2) = Trim(SP)
        
        With ListBox1
            Cells(iRow + N, 3) = .List(i, 0)      'MS
            Cells(iRow + N, 4) = .List(i, 1)      'ten HH
            Cells(iRow + N, 5) = .List(i, 2)      'DVt
            Cells(iRow + N, 6) = .List(i, 3)      'SLB
        End With
        N = N + 1
    Next
    
Application.ScreenUpdating = True
MsgBox ("cap nhat xong")
    
End Sub
Nhưng cứ Sheet nào là sheet hiên hành(Active) là ghi vào sheet đó. Em chỉ muốn ghi vào sheet 2 thôi thì chỉnh code làm sao, mong các AC giúp đỡ!!!!
 
em viết code cho nút "ghi vào sheet" như sau:
Mã:
Private Sub ghisheet_Click()
Dim i As Integer, N As Long


    If Ngay = "" Then MsgBox ("Ban chua nhap Ngay"), vbExclamation: Exit Sub
    If ListBox1.ListCount = 0 Then MsgBox ("ban chua cap nhat Noi dung CT vao Listbox"), vbExclamation: Exit Sub


Application.ScreenUpdating = False 'giup code chay. nhanh hon
    iRow = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row 'xac dinh row cuoi cung` chua' du~ lieu


    For i = 0 To ListBox1.ListCount - 1
    Cells(iRow + N, 1) = CDate(Ngay)
        Cells(iRow + N, 2) = Trim(SP)
        
        With ListBox1
            Cells(iRow + N, 3) = .List(i, 0)      'MS
            Cells(iRow + N, 4) = .List(i, 1)      'ten HH
            Cells(iRow + N, 5) = .List(i, 2)      'DVt
            Cells(iRow + N, 6) = .List(i, 3)      'SLB
        End With
        N = N + 1
    Next
    
Application.ScreenUpdating = True
MsgBox ("cap nhat xong")
    
End Sub
Nhưng cứ Sheet nào là sheet hiên hành(Active) là ghi vào sheet đó. Em chỉ muốn ghi vào sheet 2 thôi thì chỉnh code làm sao, mong các AC giúp đỡ!!!!
Thì thêm sheet2 vào trước như vầy
Sheet2.Cells(iRow + N, 3) = .List(i, 0)
 
Cám ơn Anh Quang Hai, nhưng sao code không ghi từ dòng tiêu đề trở xuống(A4) mà từ A35. Có phải do em nạp list của Comb obox tử A4 tới C34, Code nạp list cho Combobox:
Mã:
Private Sub ComboBox1_DropButtonClick() 
 With ComboBox1
    .ColumnCount = 3
    .ColumnWidths = "50;100;50"
    Dim lR As Long, arr
    arr = Sheet1.Range("A4:C34").Value
    .List() = arr
  End With
End Sub
Và Anh có thể giúp em khi ghi vào sheet xong thì xóa dữ liệu ở listbox luôn ah!!!
 
Ah Anh Quang Hai có thể giúp cho em nạp líst cho Combobox nhiều hơn được không Ah??(giống như tạo name động) chứ list còn rất nhiều(không chỉ 34 dòng)
 
Ah Anh Quang Hai có thể giúp cho em nạp líst cho Combobox nhiều hơn được không Ah??(giống như tạo name động) chứ list còn rất nhiều(không chỉ 34 dòng)
Nạp vào CB thế này.

arr = Sheet1.Range("A3", Sheet1.[C65536].End(3)).Value

Muốn xóa ListBox thì vầy

ListBox1.Clear
 
Còn cái vụ ghi dữ liệu từ Cell A 35 trở xuống thì do cái gì hả Anh Hai. Anh giúp em với.
 
Còn cái vụ ghi dữ liệu từ Cell A 35 trở xuống thì do cái gì hả Anh Hai. Anh giúp em với.
Chắc là do dòng này
iRow = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row

Thử sửa lại chút coi sao
iRow = Sheet2.[A65536].end(3)(2).row

Cơ bản về VBA của bạn còn kém quá mà cứ xài toàn đao to búa bự nên mệt mỏi lắm
Xài code cơ bản như mình cho khỏe thấn
 
Cám Ơn Anh Hai đã quan tâm giúp đỡ. Nói thiệt với Anh Hai là em chỉ cóp nhặt code của các AC "Tiền Bối" trên DĐ (trong đó có Anh) rồi em ghép lại. Chứ thật ra VBA của em "quá yếu". Một lần nữa Cám Ơn Anh và Các AC trên DĐ.
 
tại sao Textbox Tên Hàng Hóa không gỏ chữ được

em có file đính kèm mong các AC xem tại sao T e x t bo x "Tên Hàng Hóa" không gỏ chữ được.Em cám Ơn!!!!
 
Lần chỉnh sửa cuối:
em có file đính kèm mong các AC xem tại sao T e x t bo x "Tên Hàng Hóa" không gỏ chữ được.Em cám Ơn!!!!
Vào trong properties vọc thì biết. Chắc thuộc tính Locked của nó đang là true. Chỉnh lại thuộc tính đó là False là được
 
Ở file đính kèm trên, em có đoạn code định dạng Textbox "Định Mức" là :
Mã:
Private Sub DM_Exit(ByVal Cancel As MSForms.ReturnBoolean)   
On Error Resume Next
    DM.Text = FormatNumber(DM, , vbTrue) '<--dinh dang so cua DM la #,##,0.00
End Sub
Nhưng sao khi em gỏ 0.25 thì nó tự làm tròn là 0.3. Ý của em là muốn nó phải là 0.25. Mong các AC giúp đỡ!!!!!
 
Web KT

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

Back
Top Bottom