[NAN GIẢI, CẦN GIÚP ĐỠ!!!] Chuyển nội dung sang Sheet mới khác định dạng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vubinh099

Thành viên mới
Tham gia
30/10/15
Bài viết
43
Được thích
4
Chào các bác, tình hình là theo nhu cầu của công việc em cần 1 code để chuyển đổi nội dung sang một bảng tính mới khác định dạng thiết kế. Nhưng do không hiểu nhiều về VBA cũng như Marco nên nhờ các bác giúp hộ em với nhá. Cám ơn các bác nhiều!!!
 

File đính kèm

Chào các bác, tình hình là theo nhu cầu của công việc em cần 1 code để chuyển đổi nội dung sang một bảng tính mới khác định dạng thiết kế. Nhưng do không hiểu nhiều về VBA cũng như Marco nên nhờ các bác giúp hộ em với nhá. Cám ơn các bác nhiều!!!
Bạn dùng cod này, lưu ý định dạng cột số hoá đơn dạng text
Sub GPE()
Dim i, j, k, lastrow As Integer, Arr()
lastrow = Sheets("DATA1").Range("A" & Rows.Count).End(3).Row
ReDim Arr(1 To lastrow * 11, 1 To 6)
k = 1
For i = 5 To 15
For j = 2 To lastrow
If Sheets("DATA1").Cells(j, i) <> "" Then
Arr(k, 1) = k
Arr(k, 2) = Sheets("DATA1").Cells(j, 1)
Arr(k, 3) = Sheets("DATA1").Cells(j, 2)
Arr(k, 4) = Sheets("DATA1").Cells(j, 3)
Arr(k, 5) = "Hàng hóa " & (i - 4)
Arr(k, 6) = Sheets("DATA1").Cells(j, i)
k = k + 1
End If
Next
Next
Sheets("DATA2").Range("A2").Resize(k, 6) = Arr
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chào bác, Cám ơn bác rất nhiều nhé! E thì đang tập tành tự học mấy cái code này vì rất hữu ích trong công việc nên mong bác chú thích giúp em từng dòng code có ý nghĩa hay lệnh gì được không ạ. Lỡ giúp thì giúp cho tới luôn nha bác, đừng trách e được voi đòi tiên nhá. Vạn lần đa tạ!!! --=0
 
Upvote 0
bạn dùng thử tập tin nầy. bấm nút lệnh
Chào bác, Cám ơn bác rất nhiều nhé! E thì đang tập tành tự học mấy cái code này vì rất hữu ích trong công việc nên mong bác chú thích giúp em từng dòng code có ý nghĩa hay lệnh gì được không ạ. Lỡ giúp thì giúp cho tới luôn nha bác, đừng trách e được voi đòi tiên nhá. Vạn lần đa tạ!!! --=0
 
Upvote 0
Chào bác, Cám ơn bác rất nhiều nhé! E thì đang tập tành tự học mấy cái code này vì rất hữu ích trong công việc nên mong bác chú thích giúp em từng dòng code có ý nghĩa hay lệnh gì được không ạ. Lỡ giúp thì giúp cho tới luôn nha bác, đừng trách e được voi đòi tiên nhá. Vạn lần đa tạ!!! --=0
Mã:
Sub GPE()
Dim i, j, k, lastrow As Integer, Arr()
' xác định số dòng của dữ liệu( dòng cuối cùng)
lastrow = Sheets("DATA1").Range("A" & Rows.Count).End(3).Row
ReDim Arr(1 To lastrow * 11, 1 To 6) 'Lưu dữ liệu theo mảng
k = 1
For i = 5 To 15 ' chạy dữ liệu từ cột 5 (hàng hoá 1 tới cột 15 (hang hoá 11)
    For j = 2 To lastrow ' chạy từng dòng dữ liệu gốc
        If Sheets("DATA1").Cells(j, i) <> "" Then ' nếu dòng của hàng hoá tứ i <> rỗng thì lưu tất cả các giá trị
            Arr(k, 1) = k ' stt
            Arr(k, 2) = Sheets("DATA1").Cells(j, 1) ' số hoá đơn
            Arr(k, 3) = Sheets("DATA1").Cells(j, 2) ' số chứng từ
            Arr(k, 4) = Sheets("DATA1").Cells(j, 3) 'ngày
            Arr(k, 5) = "Hàng hóa " & (i - 4) ' tên hàng hoá
            Arr(k, 6) = Sheets("DATA1").Cells(j, i) ' số lượng
            k = k + 1
        End If
    Next
Next
Sheets("DATA2").Range("A2").Resize(k, 6) = Arr  ' fill dữ liệu (kết quả)
End Sub
 
Upvote 0
Chào các bác, tình hình là theo nhu cầu của công việc em cần 1 code để chuyển đổi nội dung sang một bảng tính mới khác định dạng thiết kế. Nhưng do không hiểu nhiều về VBA cũng như Marco nên nhờ các bác giúp hộ em với nhá. Cám ơn các bác nhiều!!!
Chưa quen xài VBA thì bạn có thể tham khảo cách sử dụng Pivot table như trong clip này nhé /-*+/
https://www.youtube.com/watch?v=xmqTN0X-AgY
 
Upvote 0
Chào bác, Cám ơn bác rất nhiều nhé! E thì đang tập tành tự học mấy cái code này vì rất hữu ích trong công việc nên mong bác chú thích giúp em từng dòng code có ý nghĩa hay lệnh gì được không ạ. Lỡ giúp thì giúp cho tới luôn nha bác, đừng trách e được voi đòi tiên nhá. Vạn lần đa tạ!!! --=0
Sub Copy()
Dim i, j, Arr()
Sheets("DATA1").Select ' chon Sheets DATA1
n = Range([A2], [A2].End(xlDown)).Count 'so dong vung du lieu n=5
ReDim Arr(1 To n * 11, 1 To 6) 'khai bao mang n*11=55 dòng 6 cot
For i = 1 To n 'tu dong du lieu dau tien: 1 toi dong cuoi: 5
For j = 1 To 11 'xet cac ten hang hoa
If Cells(i + 1, j + 4) <> "" Then 'chi lay hang hoa co ban
m = m + 1
Arr(m, 1) = m 'so thu tu
Arr(m, 2) = Cells(i + 1, 1) 'so hoa don
Arr(m, 3) = Cells(i + 1, 2) 'so chung tu
Arr(m, 4) = Cells(i + 1, 3) 'ngay thang
Arr(m, 5) = Cells(1, j + 4) 'ten hang
Arr(m, 6) = Cells(i + 1, j + 4) 'so luong
End If
Next
Next
Sheets("DATA2").Select ' chon Sheets DATA2
Range("A2:F1000").ClearContents 'xoa du lieu cu
Range("A2:F" & m + 1) = Arr() 'nhap du lieu moi lay tu sheets DATA1
End Sub
 
Upvote 0
cảm ơn các bác đã nhiệt tình giúp đỡ!!!! thanks so much}}}}}}}}}}}}}}}}}}}}
 
Upvote 0
Web KT

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

Back
Top Bottom