E có 3 textbox Txb_thanhtien=Txb_soluong*Txb_dongia
Trường hợp là:
- e định dạng là ngăn cách dầu thập phân là dầu phẩy, số phần ngàn là dấu chấm.
- số lương là số thập phân ví dụ: 1,2 or 3,4.................... khi e thêm mới vào file excell thì ok
- nhưng trường hợp sửa lại số lượng là 1 số thập phân khác thì txb _thanhtien khong hieu so luong do la so thap phan mà hiểu là
ví dụ 2,3 là số 23 như vậy trả kết quả thành tiên không đúng.
****Mong thầy hỗ trợ giúp e với ạ.
(mục này e đã lục ra các bài giảng, mày mò và nghiên cứu suốt mấy ngày rồi nhưng vẫn không có kết quả.)
Private Sub Tb_nhom_n_Change()
If Tb_nhom_n.Value <> ("cum" & "*") Then
Cbb_chiphi_n = "*"
End If
End Sub
Private Sub Cbb_chiphi_n_Change()
Dim ws As Worksheet
Dim dc As Long
Set ws = ThisWorkbook.Sheets("danhmuc")
dc = 8
On Error Resume Next
If Cbb_chiphi_n.Value = Excel.WorksheetFunction.XLookup(Cbb_chiphi_n.Value, ws.Range("N2" & ":N" & dc), ws.Range("N2" & ":N" & dc), False) Then
Cbb_chiphi_n.Value = Excel.WorksheetFunction.XLookup(Cbb_chiphi_n.Value, ws.Range("N2" & ":N" & dc), ws.Range("N2" & ":N" & dc), False)
Else
Cbb_chiphi_n.Value = "*"
On Error GoTo 0
End If
End Sub
Private Sub cbb_doituong_n_Change()
On Error Resume Next
Dim ws As Worksheet
Dim dc As Long
Set ws = ThisWorkbook.Sheets("danhmuc")
dc = ws.Range("d" & Rows.Count).End(xlUp).Row
If cbb_doituong_n = "" Then
Tb_nhom_n = "Khong_nhap"
ElseIf cbb_doituong_n.Value = WorksheetFunction.XLookup(cbb_doituong_n.Value, ws.Range("d10" & ":d" & dc), ws.Range("d10" & ":d" & dc), False) Then
Tb_nhom_n.Value = WorksheetFunction.XLookup(cbb_doituong_n.Value, ws.Range("d10" & ":d" & dc), ws.Range("c10" & ":c" & dc), False)
Else
cbb_doituong_n.Value = ""
End If
On Error GoTo 0
End Sub
Private Sub cmb_danhmuc_n_Click()
Uf_danhmuc.Show
End Sub
Private Sub cmb_luu_n_Click()
ThisWorkbook.Save
MsgBox "Da duoc luu", vbInformation
End Sub
Private Sub cmb_sua_n_Click()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim lastrow As Long
Set ws = ThisWorkbook.Sheets("data")
lastrow = tb_id_n
ws.Range("b" & lastrow + 3) = Tb_nhom_n.Value
ws.Range("c" & lastrow + 3) = cbb_doituong_n.Value
ws.Range("d" & lastrow + 3) = Cbb_chiphi_n.Value
ws.Range("e" & lastrow + 3) = Cbb_cay_n.Value
ws.Range("f" & lastrow + 3) = tb_hangmuc_n.Value
ws.Range("g" & lastrow + 3) = Cbb_dvt_n.Value
ws.Range("h" & lastrow + 3) = CDbl(Tb_soluong_n.Value)
ws.Range("i" & lastrow + 3) = CLng(tb_dongia_n.Value)
ws.Range("j" & lastrow + 3) = CDbl(Tb_thanhtien_n.Value)
ws.Range("k" & lastrow + 3) = Tb_ghichu_n.Value
On Error Resume Next
ws.Range("l" & lastrow + 3) = CDbl(tb_dientich_n.Value)
ws.Range("m" & lastrow + 3) = CDbl(tb_sanluong_n.Value)
On Error GoTo 0
If Opb_dvchi_n = False Then
ws.Range("n" & lastrow + 3) = ""
Else
ws.Range("n" & lastrow + 3) = CDbl(Tb_thanhtien_n.Value)
End If
If opb_hngchi_n = False Then
ws.Range("o" & lastrow + 3) = ""
Else
ws.Range("o" & lastrow + 3) = CDbl(Tb_thanhtien_n.Value)
End If
Tb_nhom_n = ""
cbb_doituong_n = ""
Cbb_chiphi_n = ""
Cbb_cay_n = ""
tb_hangmuc_n = ""
Cbb_dvt_n = ""
Tb_soluong_n = ""
tb_dongia_n = ""
Tb_thanhtien_n = ""
Tb_ghichu_n = ""
tb_dientich_n = ""
tb_sanluong_n = ""
Call hienthitimkiem
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub
Private Sub cmb_them_n_Click()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim lastrow As Long
Set ws = ThisWorkbook.Sheets("data")
lastrow = ws.Range("b" & Rows.Count).End(xlUp).Row
ws.Range("b" & lastrow + 1) = Tb_nhom_n.Value
ws.Range("c" & lastrow + 1) = cbb_doituong_n.Value
ws.Range("d" & lastrow + 1) = Cbb_chiphi_n.Value
ws.Range("e" & lastrow + 1) = Cbb_cay_n.Value
ws.Range("f" & lastrow + 1) = tb_hangmuc_n.Value
ws.Range("g" & lastrow + 1) = Cbb_dvt_n.Value
ws.Range("h" & lastrow + 1) = CDbl(Tb_soluong_n.Value)
ws.Range("i" & lastrow + 1) = CLng(tb_dongia_n.Value)
ws.Range("j" & lastrow + 1) = CDbl(Tb_thanhtien_n.Value)
ws.Range("k" & lastrow + 1) = Tb_ghichu_n.Value
On Error Resume Next
ws.Range("l" & lastrow + 1) = CDbl(tb_dientich_n.Value)
ws.Range("m" & lastrow + 1) = CDbl(tb_sanluong_n.Value)
On Error GoTo 0
If Opb_dvchi_n = False Then
ws.Range("n" & lastrow + 1) = ""
Else
ws.Range("n" & lastrow + 1) = CDbl(Tb_thanhtien_n.Value)
End If
If opb_hngchi_n = False Then
ws.Range("o" & lastrow + 1) = ""
Else
ws.Range("o" & lastrow + 1) = CDbl(Tb_thanhtien_n.Value)
End If
Tb_nhom_n = ""
cbb_doituong_n = ""
Cbb_chiphi_n = ""
Cbb_cay_n = ""
tb_hangmuc_n = ""
Cbb_dvt_n = ""
Tb_soluong_n = ""
tb_dongia_n = ""
Tb_thanhtien_n = ""
Tb_ghichu_n = ""
tb_dientich_n = ""
tb_sanluong_n = ""
Call hienthitimkiem
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub
Private Sub cmb_timkiem_l_Click()
Call hienthitimkiem
End Sub
Private Sub cmb_xoa_Click()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim lastrow As Long
Set ws = ThisWorkbook.Sheets("data")
lastrow = tb_id_n
ws.Range("b" & lastrow + 3) = ""
ws.Range("c" & lastrow + 3) = ""
ws.Range("d" & lastrow + 3) = ""
ws.Range("e" & lastrow + 3) = ""
ws.Range("f" & lastrow + 3) = ""
ws.Range("g" & lastrow + 3) = ""
ws.Range("h" & lastrow + 3) = ""
ws.Range("i" & lastrow + 3) = ""
ws.Range("j" & lastrow + 3) = ""
ws.Range("k" & lastrow + 3) = ""
On Error Resume Next
ws.Range("l" & lastrow + 3) = ""
ws.Range("m" & lastrow + 3) = ""
On Error GoTo 0
If Opb_dvchi_n = False Then
ws.Range("n" & lastrow + 3) = ""
Else
ws.Range("n" & lastrow + 3) = ""
End If
If opb_hngchi_n = False Then
ws.Range("o" & lastrow + 3) = ""
Else
ws.Range("o" & lastrow + 3) = ""
End If
Tb_nhom_n = ""
cbb_doituong_n = ""
Cbb_chiphi_n = ""
Cbb_cay_n = ""
tb_hangmuc_n = ""
Cbb_dvt_n = ""
Tb_soluong_n = ""
tb_dongia_n = ""
Tb_thanhtien_n = ""
Tb_ghichu_n = ""
tb_dientich_n = ""
tb_sanluong_n = ""
Call hienthitimkiem
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub
Private Sub cmb_xuatexcel_l_Click()
Dim nwb As Workbook
Set nwb = Workbooks.Add
ThisWorkbook.Sheets("timkiem").UsedRange.Copy nwb.Sheets(1).Range("a1")
End Sub
Private Sub Lsb_data_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.tb_id_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 0)
Me.Tb_nhom_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 1)
Me.cbb_doituong_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 2)
Me.Cbb_chiphi_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 3)
Me.Cbb_cay_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 4)
Me.tb_hangmuc_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 5)
Me.Cbb_dvt_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 6)
Me.Tb_soluong_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 7)
Me.tb_dongia_n.Value = CDbl(Me.Lsb_data.List(Me.Lsb_data.ListIndex, 8))
Me.Tb_thanhtien_n.Value = CDbl(Me.Lsb_data.List(Me.Lsb_data.ListIndex, 9))
Me.Tb_ghichu_n.Value = Me.Lsb_data.List(Me.Lsb_data.ListIndex, 10)
Me.tb_dientich_n.Value = CStr(Me.Lsb_data.List(Me.Lsb_data.ListIndex, 11))
Me.tb_sanluong_n.Value = CStr(Me.Lsb_data.List(Me.Lsb_data.ListIndex, 12))
If Me.Lsb_data.List(Me.Lsb_data.ListIndex, 13) = "" Then
Opb_dvchi_n = False
Else
Opb_dvchi_n = True
End If
If Me.Lsb_data.List(Me.Lsb_data.ListIndex, 14) = "" Then
opb_hngchi_n = False
Else
opb_hngchi_n = True
End If
End Sub
Private Sub tb_dientich_n_Change()
End Sub
Private Sub tb_sanluong_n_change()
End Sub
Private Sub tb_dientich_n_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
Private Sub tb_dongia_n_Change()
tb_dongia_n = Format(tb_dongia_n, "#,##0")
If Tb_soluong_n <> "" And tb_dongia_n <> "" Then
Tb_thanhtien_n = Tb_soluong_n * tb_dongia_n
Else: Tb_thanhtien_n = 0
End If
End Sub
Private Sub tb_sanluong_n_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
Private Sub Tb_soluong_n_Change()
On Error Resume Next
If Tb_soluong_n <> "" And tb_dongia_n <> "" Then
Tb_thanhtien_n = Tb_soluong_n * tb_dongia_n
Else: Tb_thanhtien_n = 0
End If
On Error GoTo 0
End Sub
Private Sub Tb_thanhtien_n_Change()
Tb_thanhtien_n = Format(Tb_thanhtien_n, "#,##0")
End Sub
Private Sub UserForm_Initialize()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim dc_doituong As Long
Dim dc_chiphi As Long
Dim dc_cay As Long
Dim dc_hangmuc As Long
Dim dc_dvt As Long
Dim list_doituong As Variant
Dim list_chiphi As Variant
Dim list_cay As Variant
Dim list_hangmuc As Variant
Dim list_dvt As Variant
Set ws = ThisWorkbook.Sheets("danhmuc")
dc_doituong = ws.Range("a" & Rows.Count).End(xlUp).Row
dc_chiphi = 8
dc_cay = 21
dc_hangmuc = ws.Range("ac" & Rows.Count).End(xlUp).Row
dc_dvt = ws.Range("ab" & Rows.Count).End(xlUp).Row
If cbb_doituong_n = "" Then
Tb_nhom_n = "Khong_nhap"
End If
''
list_doituong = ws.Range("d10:d" & dc_doituong).Value
With cbb_doituong_n
.List = list_doituong
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
''
list_chiphi = ws.Range("n2:n" & dc_chiphi).Value
With Cbb_chiphi_n
.List = list_chiphi
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
''
list_cay = ws.Range("n11:n" & dc_cay).Value
With Cbb_cay_n
.List = list_cay
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
''
list_hangmuc = ws.Range("ac2:ac" & dc_hangmuc).Value
With tb_hangmuc_n
.List = list_hangmuc
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
''
list_dvt = ws.Range("ab2:ab" & dc_dvt).Value
With Cbb_dvt_n
.List = list_dvt
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
Call hienthitimkiem
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub
Sub capnhatdanhmuc()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim dc_doituong As Long
Dim list_doituong As Variant
Set ws = ThisWorkbook.Sheets("danhmuc")
dc_doituong = ws.Range("a" & Rows.Count).End(xlUp).Row
''
list_doituong = ws.Range("d10:d" & dc_doituong).Value
With cbb_doituong_n
.List = list_doituong
.ColumnCount = 1
.DragBehavior = fmDragBehaviorDisabled
.MatchEntry = fmMatchEntryComplete
End With
''
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub
'''''''''''''''
Sub hienthitimkiem()
ThisWorkbook.Sheets("data").Unprotect Password:="1"
Dim ws As Worksheet
Dim wst As Worksheet
Dim lastrow As Double
Dim lastrow_TK As Double
Set ws = ThisWorkbook.Sheets("data")
Set wst = ThisWorkbook.Sheets("timkiem")
lastrow = Excel.WorksheetFunction.CountA(ws.Range("b:b"))
lastrow_TK = Excel.WorksheetFunction.CountA(wst.Range("b:b"))
ws.AutoFilterMode = False
If tb_nhom_l <> "" Or Tb_doituong_l <> "" Or Tb_chiphi_l <> "" Or tb_cay_l <> "" Or tb_hangmuc_l <> "" Then
chb_xemtatca = False
wst.Range("a3" & ":o" & lastrow_TK + 3).Clear
ws.UsedRange.AutoFilter Field:=2, Criteria1:="*" & tb_nhom_l & "*"
ws.UsedRange.AutoFilter Field:=3, Criteria1:="*" & Tb_doituong_l & "*"
ws.UsedRange.AutoFilter Field:=4, Criteria1:="*" & Tb_chiphi_l & "*"
ws.UsedRange.AutoFilter Field:=5, Criteria1:="*" & tb_cay_l & "*"
ws.UsedRange.AutoFilter Field:=6, Criteria1:="*" & tb_hangmuc_l & "*"
ws.Range("a4" & ":o" & lastrow).Copy
wst.Range("a3").PasteSpecial xlPasteValuesAndNumberFormats
ws.AutoFilterMode = False
ElseIf chb_xemtatca = True Then
wst.Range("a3" & ":o" & lastrow_TK + 3).Clear
ws.Range("a4" & ":o" & lastrow).Copy
wst.Range("a3").PasteSpecial xlPasteValuesAndNumberFormats
ws.AutoFilterMode = False
End If
If lastrow_TK = 1 Then lastrow_TK = 2
With Lsb_data
.ColumnCount = 15
.ColumnHeads = True
.ColumnWidths = "30,80,60,60,60,240,40,60,60,120,150,60,60,120,120"
.RowSource = wst.Name & "!a2:o" & lastrow_TK + 1
End With
ThisWorkbook.Sheets("data").Protect Password:="1"
End Sub