Dear All!
Em có chỉnh sửa lại đoạn code bên dưới nhưng không biết sai chỗ nào mà nó ko báo là sai gì cả
Và cũng không thấy hoạt động như ý mình mong muốn là vì sao?
Nhờ các bác chỉ giáo?
Em đang làm sổ ngân hàng và sổ phải thu để theo dõi chi tiết những khoảng tiền về cho từng khách hàng.
Em gửi file đính kèm:
Trong file có sheets 1122NKC và GiathanhSX từ hai sheets đó Em đang tính và dự định lọc sang sheets CT131. Để theo dõi số dư của từng khách hàng?
Mình không biết cách gửi file nên trên diễn đàn! mình gửi qua mediafire vậy!
mediafire.com/download/iwr560dzzfudhvj/Ngan+hang+USD+%282%29+%28Recovered%29.xlsm
[GPECODE=vb]
'tach' khai bao' bien' de? dung` chung cac Sub
Dim tendoituong As String, FromThang As Integer, ToThang As Integer
Sub LocTkco()
With ActiveSheet '<=> CT131
'check cac dieu kien
If .CT131cbo_from.Value = Empty Or _
.CT131cbo_from.Value = Empty Or .ct131cbo_to.Value = Empty Then
MsgBox ("Ban chua dien ten doi' tuong va thang' can` loc"), vbExclamation, "Thông báo"
Exit Sub
ElseIf .CT131cbo_from.Value > .ct131cbo_to Then
MsgBox ("Thang' ke^ khai: Tu` thang' den' thang' chua hop ly'"), vbExclamation
Exit Sub
Else
tendoituong = .ct131cbo_tendoituong.Value
FromThang = .CT131cbo_from.Value
ToThang = .ct131cbo_to.Value
End If
End With
Application.ScreenUpdating = False
Call Loc_GiathanhSX
Call Loc_1122NKC
Application.ScreenUpdating = True
End Sub
Sub Loc_GiathanhSX()
Dim vung1(), dArr(), i As Long, K As Long 'ko the tach' i, K len tren de dung` chung
vung1 = Range("tbl_GiathanhSX").Value 'khi dung` Table -> ko can show all row.
ReDim dArr(1 To UBound(vung1, 1), 1 To 16) 'xac dinh kich thuoc mang
For i = 1 To UBound(vung1, 1)
If UCase(vung1(i, 6)) = UCase(tendoituong) Then
If vung1(i, 1) >= FromThang And vung1(i, 1) <= ToThang Then
If vung1(i, 8) = 131 Then
K = K + 1
dArr(K, 1) = vung1(i, 1) 'Moth declara
dArr(K, 5) = vung1(i, 3) 'So HD
dArr(K, 6) = vung1(i, 4) 'Ngay thang
dArr(K, 7) = vung1(i, 7) 'Ma Hang
dArr(K, 8) = vung1(i, 9) 'TK No131
dArr(K, 9) = vung1(i, 10) 'TKco5113
dArr(K, 10) = vung1(i, 11) 'So luong
dArr(K, 11) = vung1(i, 12) 'DonGia ban VND
dArr(K, 12) = vung1(i, 13) 'DonGia ban USD
dArr(K, 13) = vung1(i, 14) 'Tonggiathanh VND
dArr(K, 14) = vung1(i, 15) 'Tonggiathanh USD
'dArr(K, 11) = vung1(i, 12) 'Amount
dArr(K, 16) = "=R[-1]C+RC[-2]-RC[-1]" 'Balance
End If
End If
End If
Next i
If K Then
With ThisWorkbook.Sheets("CT131")
.[B13].Resize(P, 16) = dArr
End With
Erase dArr
End If
End Sub
Sub Loc_1122NKC()
Dim vung2(), dArr(), i As Long, K As Long
vung2 = Range("tbl_1122NKC").Value
ReDim dArr(1 To UBound(vung2, 1), 1 To 13) 'xac dinh kich thuoc mang
For i = 1 To UBound(vung2, 1)
If UCase(vung2(i, 6)) = UCase(tendoituong) Then
If vung2(i, 1) >= FromThang And vung2(i, 1) <= ToThang Then
If vung2(i, 7) = 131 Or vung2(i, 8) = 131 Then
K = K + 1
dArr(K, 1) = vung2(i, 1) 'month ke khai
dArr(K, 2) = vung2(i, 2) 'Ten ngan hang
dArr(K, 3) = vung2(i, 4) 'ngay thang chung tu ngan hang
dArr(K, 7) = vung2(i, 5) 'Dien gian
dArr(K, 8) = vung2(i, 7) 'Tai khoan No131
dArr(K, 9) = vung2(i, 8) 'Tk Co tk131
'dArr(K, 9) = vung2(i, 8) 'TK co
If vung2(i, 8) = 131 Then
dArr(K, 15) = vung2(i, 9) 'Paid
' Else
' dArr(K, 12) = vung2(i, 9) 'Paid
End If
dArr(K, 16) = "=R[-1]C+RC[-2]-RC[-1]" 'Balance
'dArr(K, 5) = vung2(i, 5) 'so HD
'dArr(K, 8) = vung2(i, 9) 'N
'dArr(K, 10) = vung2(i, 11) 'C
End If
End If
End If
Next i
If K Then
'ua? nho' lan` truoc co' chinh? o? day roi` ma` he`
With ThisWorkbook.Sheets("CT131")
'If .Range("A7") <> "" Then
If .Range("Q15") <> "" Then 'luon luon co' (19-6)
.Range("A65536").End(xlUp).Offset(1).Resize(K, 16) = dArr
Else
.[B15].Resize(K, 16) = dArr
End If
End With
Erase dArr
End If
End Sub
[/GPECODE]
Em có chỉnh sửa lại đoạn code bên dưới nhưng không biết sai chỗ nào mà nó ko báo là sai gì cả
Và cũng không thấy hoạt động như ý mình mong muốn là vì sao?
Nhờ các bác chỉ giáo?
Em đang làm sổ ngân hàng và sổ phải thu để theo dõi chi tiết những khoảng tiền về cho từng khách hàng.
Em gửi file đính kèm:
Trong file có sheets 1122NKC và GiathanhSX từ hai sheets đó Em đang tính và dự định lọc sang sheets CT131. Để theo dõi số dư của từng khách hàng?
Mình không biết cách gửi file nên trên diễn đàn! mình gửi qua mediafire vậy!
mediafire.com/download/iwr560dzzfudhvj/Ngan+hang+USD+%282%29+%28Recovered%29.xlsm
[GPECODE=vb]
'tach' khai bao' bien' de? dung` chung cac Sub
Dim tendoituong As String, FromThang As Integer, ToThang As Integer
Sub LocTkco()
With ActiveSheet '<=> CT131
'check cac dieu kien
If .CT131cbo_from.Value = Empty Or _
.CT131cbo_from.Value = Empty Or .ct131cbo_to.Value = Empty Then
MsgBox ("Ban chua dien ten doi' tuong va thang' can` loc"), vbExclamation, "Thông báo"
Exit Sub
ElseIf .CT131cbo_from.Value > .ct131cbo_to Then
MsgBox ("Thang' ke^ khai: Tu` thang' den' thang' chua hop ly'"), vbExclamation
Exit Sub
Else
tendoituong = .ct131cbo_tendoituong.Value
FromThang = .CT131cbo_from.Value
ToThang = .ct131cbo_to.Value
End If
End With
Application.ScreenUpdating = False
Call Loc_GiathanhSX
Call Loc_1122NKC
Application.ScreenUpdating = True
End Sub
Sub Loc_GiathanhSX()
Dim vung1(), dArr(), i As Long, K As Long 'ko the tach' i, K len tren de dung` chung
vung1 = Range("tbl_GiathanhSX").Value 'khi dung` Table -> ko can show all row.
ReDim dArr(1 To UBound(vung1, 1), 1 To 16) 'xac dinh kich thuoc mang
For i = 1 To UBound(vung1, 1)
If UCase(vung1(i, 6)) = UCase(tendoituong) Then
If vung1(i, 1) >= FromThang And vung1(i, 1) <= ToThang Then
If vung1(i, 8) = 131 Then
K = K + 1
dArr(K, 1) = vung1(i, 1) 'Moth declara
dArr(K, 5) = vung1(i, 3) 'So HD
dArr(K, 6) = vung1(i, 4) 'Ngay thang
dArr(K, 7) = vung1(i, 7) 'Ma Hang
dArr(K, 8) = vung1(i, 9) 'TK No131
dArr(K, 9) = vung1(i, 10) 'TKco5113
dArr(K, 10) = vung1(i, 11) 'So luong
dArr(K, 11) = vung1(i, 12) 'DonGia ban VND
dArr(K, 12) = vung1(i, 13) 'DonGia ban USD
dArr(K, 13) = vung1(i, 14) 'Tonggiathanh VND
dArr(K, 14) = vung1(i, 15) 'Tonggiathanh USD
'dArr(K, 11) = vung1(i, 12) 'Amount
dArr(K, 16) = "=R[-1]C+RC[-2]-RC[-1]" 'Balance
End If
End If
End If
Next i
If K Then
With ThisWorkbook.Sheets("CT131")
.[B13].Resize(P, 16) = dArr
End With
Erase dArr
End If
End Sub
Sub Loc_1122NKC()
Dim vung2(), dArr(), i As Long, K As Long
vung2 = Range("tbl_1122NKC").Value
ReDim dArr(1 To UBound(vung2, 1), 1 To 13) 'xac dinh kich thuoc mang
For i = 1 To UBound(vung2, 1)
If UCase(vung2(i, 6)) = UCase(tendoituong) Then
If vung2(i, 1) >= FromThang And vung2(i, 1) <= ToThang Then
If vung2(i, 7) = 131 Or vung2(i, 8) = 131 Then
K = K + 1
dArr(K, 1) = vung2(i, 1) 'month ke khai
dArr(K, 2) = vung2(i, 2) 'Ten ngan hang
dArr(K, 3) = vung2(i, 4) 'ngay thang chung tu ngan hang
dArr(K, 7) = vung2(i, 5) 'Dien gian
dArr(K, 8) = vung2(i, 7) 'Tai khoan No131
dArr(K, 9) = vung2(i, 8) 'Tk Co tk131
'dArr(K, 9) = vung2(i, 8) 'TK co
If vung2(i, 8) = 131 Then
dArr(K, 15) = vung2(i, 9) 'Paid
' Else
' dArr(K, 12) = vung2(i, 9) 'Paid
End If
dArr(K, 16) = "=R[-1]C+RC[-2]-RC[-1]" 'Balance
'dArr(K, 5) = vung2(i, 5) 'so HD
'dArr(K, 8) = vung2(i, 9) 'N
'dArr(K, 10) = vung2(i, 11) 'C
End If
End If
End If
Next i
If K Then
'ua? nho' lan` truoc co' chinh? o? day roi` ma` he`
With ThisWorkbook.Sheets("CT131")
'If .Range("A7") <> "" Then
If .Range("Q15") <> "" Then 'luon luon co' (19-6)
.Range("A65536").End(xlUp).Offset(1).Resize(K, 16) = dArr
Else
.[B15].Resize(K, 16) = dArr
End If
End With
Erase dArr
End If
End Sub
[/GPECODE]