longkurabe
Thành viên mới

- Tham gia
- 13/3/20
- Bài viết
- 16
- Được thích
- 0
Bạn thử code.Nhờ các thành viên tiền bối chỉ thêm dùm, mình gửi file có Code đã viết chèn dòng rồi ( cũng lấy trên diễn đàn, chứ mình k rành viết code). Nhờ các tiền bối viêt thêm dùm , (có ghi chú ý mình muốn trong file và Code). Chân thành cám ơn.
Sub chuyendulieu()
Dim arr, i As Long, lr As Long, kq, dk As String, a As Long, j As Long
With Sheets("work")
lr = .Range("H" & Rows.Count).End(xlUp).Row
arr = .Range("A7:U" & lr).Value
ReDim kq(1 To UBound(arr) * 2, 1 To 21)
For i = 1 To UBound(arr)
If dk <> arr(i, 8) Then
a = a + 1
kq(a, 21) = arr(i, 8)
dk = arr(i, 8)
End If
a = a + 1
For j = 1 To 21
kq(a, j) = arr(i, j)
Next j
Next i
End With
With Sheets("vi du")
lr = .Range("H" & Rows.Count).End(xlUp).Row
If lr > 6 Then .Range("A7:U" & lr).ClearContents
If a Then .Range("A7:U7").Resize(a).Value = kq
End With
End Sub
Góp ý cho bạn:Nhờ các thành viên tiền bối chỉ thêm dùm, mình gửi file có Code đã viết chèn dòng rồi ( cũng lấy trên diễn đàn, chứ mình k rành viết code). Nhờ các tiền bối viêt thêm dùm , (có ghi chú ý mình muốn trong file và Code). Chân thành cám ơn.
Thank you. Đúng ý mình. Hy vọng bạn giúp mình tiếp phần khác.Bạn thử code.
Mã:Sub chuyendulieu() Dim arr, i As Long, lr As Long, kq, dk As String, a As Long, j As Long With Sheets("work") lr = .Range("H" & Rows.Count).End(xlUp).Row arr = .Range("A7:U" & lr).Value ReDim kq(1 To UBound(arr) * 2, 1 To 21) For i = 1 To UBound(arr) If dk <> arr(i, 8) Then a = a + 1 kq(a, 21) = arr(i, 8) dk = arr(i, 8) End If a = a + 1 For j = 1 To 21 kq(a, j) = arr(i, j) Next j Next i End With With Sheets("vi du") lr = .Range("H" & Rows.Count).End(xlUp).Row If lr > 6 Then .Range("A7:U" & lr).ClearContents If a Then .Range("A7:U7").Resize(a).Value = kq End With End Sub
Góp ý cho bạn:Cám ơn bạn đã hỗ trợ, góp ý. Thật ra mình còn 2-3 bước nũa, nhân đây mình gửi File luôn, có thể giúp mình được không nhé. Mình có ghi ý muốn trong File.
Cám ơn bạn đã giúp đỡ, mình sẽ để ý đến Topic ạ.Góp ý cho bạn:
1/ Bạn không nên ghi nội dung trong File mà nên ghi cụ thể, rõ ràng tại bài 1, để mọi người thuận tiện đọc hơn.
2/ Theo tôi chỉ cần thêm cột tháng cho sheet NhapLieu, làm xong tháng nào thì lưu dữ liệu tháng đó vào sheet Data sau đó chuyển dữ liệu tháng theo từng ngày theo chiều dọc vào sheet TransPose.
3/ Dựa vào sheet TransPose sử dụng PivotTable để tổng hợp theo ý muốn.
4/ Muốn xem lại tháng nào thì lọc dữ liệu của tháng đó ra.
5/ Tôi chỉ góp ý và đưa File lên để bạn tham khảo như nội dung tôi góp ý, trong File chưa có code vì tôi viết chưa xong.
6/ Bạn không nên mở nhiều Topic khi có cùng nội dung sẽ vi phạm nội quy, do bài kia tiêu đề với nội dung của bạn không cụ thể, rõ ràng nên tôi không góp ý. Đây là link bài kia.
Nhờ giúp đỡ lấy dữ liệu
Hi bạn , Code bạn viết khi chạy xong cột U ban đàu có công thức Sum ( ), nhưng khi Insert xong thì mất công thức SUM, công thức đó để khi mình nhập data vào có thể đối chiếu không được quá cột T, giúp mình chỗ đó với. Tks.Bạn thử code.
Mã:Sub chuyendulieu() Dim arr, i As Long, lr As Long, kq, dk As String, a As Long, j As Long With Sheets("work") lr = .Range("H" & Rows.Count).End(xlUp).Row arr = .Range("A7:U" & lr).Value ReDim kq(1 To UBound(arr) * 2, 1 To 21) For i = 1 To UBound(arr) If dk <> arr(i, 8) Then a = a + 1 kq(a, 21) = arr(i, 8) dk = arr(i, 8) End If a = a + 1 For j = 1 To 21 kq(a, j) = arr(i, j) Next j Next i End With With Sheets("vi du") lr = .Range("H" & Rows.Count).End(xlUp).Row If lr > 6 Then .Range("A7:U" & lr).ClearContents If a Then .Range("A7:U7").Resize(a).Value = kq End With End Sub
Bạn sửa chỗCám ơn bạn đã giúp đỡ, mình sẽ để ý đến Topic ạ.
Mình xin nói thêm: File DULIEU là file gốc , Hiện tại mình đang dùng Copy theo từng ngày, theo tháng từ File Data bằng tay rồi Paste vào file DULIEU theo PRODUCTE Code, Sau đó mình phải xử lý theo từng PO ( cọt N file DULIEU) theo số lượng đạt hàng đó. Ngày nào có sản xuất, ngày nào không ==> sau đó import lên hệ thống máy chủ CTY để Phòng Vật tư báo cáo, đặt Material theo từng ngày. Vậy đó bạn. Rất mất thời gian nên mình đang suy nghĩ đên VBA.
Bài đã được tự động gộp:
Hi bạn , Code bạn viết khi chạy xong cột U ban đàu có công thức Sum ( ), nhưng khi Insert xong thì mất công thức SUM, công thức đó để khi mình nhập data vào có thể đối chiếu không được quá cột T, giúp mình chỗ đó với. Tks.
For j = 1 To 21
kq(a, j) = arr(i, j)
Next j
For j = 1 To 20
kq(a, j) = arr(i, j)
Next j
kq(a, 21) = "=SUM(RC[1]:RC[180])"
Bạn nêu File DULIEU là file gốc, vậy nó từ phần mềm xuất ra hay sao cần cụ thể, rõ ràng.Cám ơn bạn đã giúp đỡ, mình sẽ để ý đến Topic ạ.
Mình xin nói thêm: File DULIEU là file gốc , Hiện tại mình đang dùng Copy theo từng ngày, theo tháng từ File Data bằng tay rồi Paste vào file DULIEU theo PRODUCTE Code, Sau đó mình phải xử lý theo từng PO ( cọt N file DULIEU) theo số lượng đạt hàng đó. Ngày nào có sản xuất, ngày nào không ==> sau đó import lên hệ thống máy chủ CTY để Phòng Vật tư báo cáo, đặt Material theo từng ngày. Vậy đó bạn. Rất mất thời gian nên mình đang suy nghĩ đên VBA.
Nhà họ làm gì Bạn à. Sao lại nhắn trả lời là "Tôi không sao" vậyTks ban.
"Tôi kinh sợ" nhưng "Tôi không sao"Nhà họ làm gì Bạn à. Sao lại nhắn trả lời là "Tôi không sao" vậy![]()