Hong.Van
Busy
- Tham gia
- 7/5/12
- Bài viết
- 2,330
- Được thích
- 1,767
Em chào Thầy cô & anh chị!
Em có đọan code sau: (Code này do Thầy cô & anh chị viết giúp)
Tại Sheet MA, cột BF:BH có Mã KH, Tên KH và Tháng. Trong đó dữ liệu trong cột Tháng sẽ tương ứng với Tên các Sheet Chi tiết là CNT01 (Nghĩa là Công nợ tháng 01), CNT02, CNT03 ... cho đến CNT12
Khi đứng tại Sheet MA chạy code(Bấm vào nút: Thêm Mã vào CNT)sẽ cho kết qủa tạm tại các cột phụ từ CA:CG, và nó dựa vào hằng số ở cell CA1
1/Hằng số này có ý nghĩa như sau: số 2 thì sẽ cho kết qủa ở Sheet CNT01 & CNT02. Số 13 sẽ cho kết qủa từ CNT01 đến CNT13
2/Kết qủa của các sheet CNT sau khi chạy code là:
a/ Sheet CNT01 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là CNT01
b/ Sheet CNT02 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT02
....
c/ Sheet CNT10 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT10
d/ Sheet CNT12 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT12
e/ Và Sheet CNT13 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT12
Nói tóm lại Sheet CNTn sẽ lấy các dòng có từ CNTn đến CNT01!
----------------------
Sau 1 thời gian sử dụng code trên thì có bất tiện là, Ví dụ bây giờ là tháng 10, thì nó cập nhật lại toàn bộ các sheet từ CNT01 đến CNT10, như vậy em fải cập nhật lại hết toàn bộ các số liệu khác của các sheet nói trên
-------------------
Thầy cô & anh chị giúp em sửa code như sau:
Các điều kiện lấy số liệu vẫn như trên.
Khi đứng tại Sheet CNT09 để chạy code thì chỉ có CNT09 là có kết qủa chạy code, còn các sheet khác thì không ảnh hưởng!
Em cảm ơn!
Em có đọan code sau: (Code này do Thầy cô & anh chị viết giúp)
Tại Sheet MA, cột BF:BH có Mã KH, Tên KH và Tháng. Trong đó dữ liệu trong cột Tháng sẽ tương ứng với Tên các Sheet Chi tiết là CNT01 (Nghĩa là Công nợ tháng 01), CNT02, CNT03 ... cho đến CNT12
Khi đứng tại Sheet MA chạy code(Bấm vào nút: Thêm Mã vào CNT)sẽ cho kết qủa tạm tại các cột phụ từ CA:CG, và nó dựa vào hằng số ở cell CA1
1/Hằng số này có ý nghĩa như sau: số 2 thì sẽ cho kết qủa ở Sheet CNT01 & CNT02. Số 13 sẽ cho kết qủa từ CNT01 đến CNT13
2/Kết qủa của các sheet CNT sau khi chạy code là:
a/ Sheet CNT01 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là CNT01
b/ Sheet CNT02 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT02
....
c/ Sheet CNT10 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT10
d/ Sheet CNT12 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT12
e/ Và Sheet CNT13 sẽ lấy Mã KH và Tên KH tương ứng với dòng tại cột BH có dữ liệu là từ CNT01 đến CNT12
Nói tóm lại Sheet CNTn sẽ lấy các dòng có từ CNTn đến CNT01!
----------------------
Sau 1 thời gian sử dụng code trên thì có bất tiện là, Ví dụ bây giờ là tháng 10, thì nó cập nhật lại toàn bộ các sheet từ CNT01 đến CNT10, như vậy em fải cập nhật lại hết toàn bộ các số liệu khác của các sheet nói trên
-------------------
Thầy cô & anh chị giúp em sửa code như sau:
Các điều kiện lấy số liệu vẫn như trên.
Khi đứng tại Sheet CNT09 để chạy code thì chỉ có CNT09 là có kết qủa chạy code, còn các sheet khác thì không ảnh hưởng!
Em cảm ơn!
Mã:
Sub InsertRows_SS()' code insert cac dong ben cac sheet CNT
Application.ScreenUpdating = False
Dim Sh As Worksheet, Rng As Range, SRng As Range, Cls As Range
Dim Rws As Long, jJ As Byte, fF As Byte
Dim ShName As String, MyAdd As String, Th As String
Sheets("MA").Select
Rws = [BG9].CurrentRegion.Rows.Count
Set Rng = [BH9].CurrentRegion
For jJ = 1 To [CA1].Value
ShName = "CNT" & Right("0" & CStr(jJ), 2)
Set Sh = ThisWorkbook.Worksheets(ShName)
Sh.[A11].Resize(500, 10).ClearContents
[CG10].Resize(12).ClearContents
On Error Resume Next
ActiveWorkbook.Names("Criteria").Delete
Err = 0
For fF = 1 To jJ
Th = "CNT" & Right("0" & CStr(fF), 2)
[CG9].Offset(fF).Value = Th
Next fF
Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[CG9].Resize(fF), CopyToRange:=Range("CA9:CB9")
[CB10].CurrentRegion.Offset(1).Copy Destination:=Sh.[B11]
Range("Cuoi").Copy Destination:=Sh.[B9999].End(xlUp).Offset(, -1)
Next jJ
Sh.Activate
Range("B11").Select
Application.ScreenUpdating = True
End Sub