Mình xin gửi lại file như sau :
https://www.mediafire.com/?qbcoql78ccsmozd
mình có đổi name vùng lại mình có ghi chú rõ
bạn xem nhé
mình lập sẵn code cho 2 file:
(*) File ...(2): Copy vùng
dựa vào Name.
(*) File ...(3):
ko dùng Name, thay vào đó lập
công thức xác định vùng cần copy (cột O sheet CUAMAU):
cách này có nhiều ưu điểm:
- dễ thấy được vùng mà bạn đã cài đặt
- nếu số lượng vùng càng nhiều ---> vẫn linh hoạt + dễ điều chỉnh (do 1 công thức duy nhất)
- khi chèn Row vẫn ko bị ảnh hưởng so với khi dùng Name (nếu chèn ko đúng vị trí Row)
=> bạn có thể loại bỏ các Name đã đặt cho các vùng đó.
'--------
BAOGIA_CUAMOI (2):
https://www.mediafire.com/?qdy59cb6u796mls
BAOGIA_CUAMOI (3):
https://www.mediafire.com/?5lhwinoq99op0ab
BAOGIA_CUAMOI (3_1):
https://www.mediafire.com/?6hhononvv2oib32
[GPECODE=vb]
Sub GPE_CopyVung()
Dim ws As Worksheet, vung As Range, Clls As Range
Dim Rng As Range, sRng As Range
Dim LastRow1 As Long, LastRow2 As Long, LastRow3 As Long
Dim SoLuong As String, cotMaxHieu As String, cotThanhTien As String
Set ws = Sheets("BAO GIA")
Set vung = ws.Range("N7:N50")
ws.Select
ws.Range("A7:M1000").Clear
For Each Clls In vung
If Clls <> "" Then
LastRow1 = ws.Range("L" & Rows.Count).End(xlUp).Offset(1).Row
Set Rng = Sheets("CUAMAU").Range("N:N")
Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
Worksheets("CUAMAU").Range(sRng.Offset(, 1)).Copy Destination:=ws.Range("A" & LastRow1)
ws.Range("M" & LastRow1) = Clls.Value
'sua? lai. cong thuc cot Thanh Tien`
SoLuong = ws.Range("J" & Rows.Count).End(xlUp).Address(True, True, xlR1C1)
LastRow2 = ws.Range("L" & Rows.Count).End(xlUp).Row
ws.Range("L" & LastRow1 + 1).Resize(LastRow2 - LastRow1).FormulaR1C1 = "=RC[-1]*RC[-4]*" & SoLuong
Else
MsgBox "ko tim` thay' vung` = " & Clls & " tai. sheet CUAMAU", vbExclamation
End If
End If
Next
'tao. Footer
LastRow3 = Range("L" & Rows.Count).End(xlUp).Offset(1).Row
cotMaxHieu = Range([B65000].End(xlUp), [B7]).Address(True, True, xlR1C1)
cotThanhTien = Range([L65000].End(xlUp), [L7]).Address(True, True, xlR1C1)
'dien` Value
Range("J" & LastRow3) = Range("O5").Value 'Tong
Range("L" & LastRow3) = "=SUMIF(" & cotMaxHieu & ",""""," & cotThanhTien & ")"
'dinh. dang.
Range("J" & LastRow3 - 1).Resize(, 3).Copy
Range("J" & LastRow3).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
Range("A1").Select
Set ws = Nothing: Set vung = Nothing
End Sub
[/GPECODE]