Code lập sổ nhật ký chung

  • Thread starter Thread starter bactu
  • Ngày gửi Ngày gửi
Liên hệ QC

bactu

Thành viên thường trực
Tham gia
19/10/07
Bài viết
304
Được thích
277
Donate (Momo)
Donate
Dựa vào sheet CHUNGTU. Cần code để tạo ra sheet SONKC như mẫu đính kèm.
Xin cảm ơn nhiều!!!
 

File đính kèm


Dạ Em cảm ơn Bác nhiều!
Bác cho em hỏi:
1. Em đã chỉnh sửa lại được tại cột diễn giải Res(i, 4) = arr(j, 3) thành Res(i, 4) = arr(j, 4)
2. Cái phần dưới bị mất từ dòng tổng cộng trở xuống bị xóa hết. Không có dòng tổng cộng và phần ngày tháng, người lập, tên, ... bị xóa hết.

Bác chỉnh sửa lại phần 2 giúp E với nha!
Cảm ơn nhiều!!!
 
Upvote 0
2. Cái phần dưới bị mất từ dòng tổng cộng trở xuống bị xóa hết. Không có dòng tổng cộng và phần ngày tháng, người lập, tên, ... bị xóa hết.
Đưa nó tuốt luốt xuống dưới luôn, cho nó nằm cố định tại chỗ, muốn merge, format, tô màu... gì đó thì tùy.
Từ dòng 10 đến 1000 không có dữ liệu thì ẩn dòng.
 

File đính kèm

Upvote 0
Đưa nó tuốt luốt xuống dưới luôn, cho nó nằm cố định tại chỗ, muốn merge, format, tô màu... gì đó thì tùy.
Từ dòng 10 đến 1000 không có dữ liệu thì ẩn dòng.
Dạ Em chỉnh sửa lại chổ này rồi. Còn dòng tổng cộng hiện tại em còn sử dụng công thức, xin code cho dòng tổng cộng này.

Cảm ơn nhiều!!!
 
Upvote 0
Dạ Em chỉnh sửa lại chổ này rồi. Còn dòng tổng cộng hiện tại em còn sử dụng công thức, xin code cho dòng tổng cộng này.

Cảm ơn nhiều!!!
Tôi không nghĩ là 2 công thức Sum() làm nặng file của bạn.
Nếu muốn tự có số Tổng cho 2 ô này thì nó chỉ là 1 số, gán vào 2 ô.
Sheet "CHUNGTU" bạn "khóa đít" bằng con số 999 nên tôi viết code thế này:
PHP:
Public Sub s_Gpe()
Application.ScreenUpdating = False
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Tong As Double
sArr = Sheets("CHUNGTU").Range("A6", Sheets("CHUNGTU").Range("A6").End(xlDown)).Resize(, 9).Value
R = UBound(sArr)
ReDim dArr(1 To R * 2, 1 To 8)
For I = 1 To R
    If sArr(I, 1) <> Empty Then
        K = K + 1
        For J = 1 To 4
            dArr(K, J) = sArr(I, J):            dArr(K + 1, J) = sArr(I, J)
        Next J
            dArr(K, 5) = "x":                   dArr(K + 1, 5) = "x"
            dArr(K, 6) = sArr(I, 6):            dArr(K + 1, 6) = sArr(I, 8)
            dArr(K, 7) = sArr(I, 9):            dArr(K + 1, 8) = sArr(I, 9)
        K = K + 1
        Tong = Tong + sArr(I, 9)
    End If
Next I
With Sheets("SONKC")
    .Rows("10:1000").EntireRow.Hidden = False
    .Range("I1002:J1002") = Tong
    If K Then
        .Range("C10").Resize(K, 8) = dArr
        .Rows(K + 10 & ":1000").EntireRow.Hidden = True
    End If
End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Tôi không nghĩ là 2 công thức Sum() làm nặng file của bạn.
Nếu muốn tự có số Tổng cho 2 ô này thì nó chỉ là 1 số, gán vào 2 ô.
Sheet "CHUNGTU" bạn "khóa đít" bằng con số 999 nên tôi viết code thế này:
PHP:
Public Sub s_Gpe()
Application.ScreenUpdating = False
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Tong As Double
sArr = Sheets("CHUNGTU").Range("A6", Sheets("CHUNGTU").Range("A6").End(xlDown)).Resize(, 9).Value
R = UBound(sArr)
ReDim dArr(1 To R * 2, 1 To 8)
For I = 1 To R
    If sArr(I, 1) <> Empty Then
        K = K + 1
        For J = 1 To 4
            dArr(K, J) = sArr(I, J):            dArr(K + 1, J) = sArr(I, J)
        Next J
            dArr(K, 5) = "x":                   dArr(K + 1, 5) = "x"
            dArr(K, 6) = sArr(I, 6):            dArr(K + 1, 6) = sArr(I, 8)
            dArr(K, 7) = sArr(I, 9):            dArr(K + 1, 8) = sArr(I, 9)
        K = K + 1
        Tong = Tong + sArr(I, 9)
    End If
Next I
With Sheets("SONKC")
    .Rows("10:1000").EntireRow.Hidden = False
    .Range("I1002:J1002") = Tong
    If K Then
        .Range("C10").Resize(K, 8) = dArr
        .Rows(K + 10 & ":1000").EntireRow.Hidden = True
    End If
End With
Application.ScreenUpdating = True
End Sub

Dạ em không nghĩ là công thức tại 2 ô tổng cộng sẽ làm nặng hay chậm file, mà nghĩ mình đã chuyển đổi sang sử dụng code rồi, nên chuyển tất cả sang code hết. Chứ không để vừa code vừa công thức.

Sheet "CHUNGTU" bạn "khóa đít" bằng con số 999. Cái này mình bỏ cũng được, không ảnh hưởng gì.

Cảm ơn Bác rất nhiều!!!
 
Upvote 0
Web KT

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

Back
Top Bottom