Nhờ giúp đỡ khi Insert rows (2 người xem)

Liên hệ QC

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

longkurabe

Thành viên mới
Tham gia
13/3/20
Bài viết
16
Được thích
0
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.
 

File đính kèm

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.
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
 
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.
Góp ý cho bạn:
1/ Thông thường người ta insert dòng rồi gán dòng trên xuống (bạn lại làm ngược). Cụ thể:
- Người ta gán PRODUCT CODE từ trên xuống luôn chứ không ai lại gán vào cột U (làm cho phức tạp thêm).
2/ Tôi thắc mắc tại sao gán chỉ riêng PRODUCT CODE mà không gán thêm ở những cột khác.
3/ Sub Total cũng có thể làm được.
 
Lần chỉnh sửa cuối:
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
Thank you. Đúng ý mình. Hy vọng bạn giúp mình tiếp phần khác.
 
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.
 

File đính kèm

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.
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
 
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
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:

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
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.
 
Lần chỉnh sửa cuối:
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.
Bạn sửa chỗ

Mã:
  For j = 1 To 21
    kq(a, j) = arr(i, j)
  Next j
Thành
Mã:
For j = 1 To 20
      kq(a, j) = arr(i, j)
 Next j
kq(a, 21) = "=SUM(RC[1]:RC[180])"
Xem thử
 
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ạ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.
Bài 6 tôi góp ý mà quên đính kèm File để bạn tham khảo, bạn đọc lại nội dung tôi góp ý ở bài 6 để hiểu, trong File chưa có code vì tôi viết chưa xong.
 

File đính kèm

Hi các bạn, cám ơn các bạn đã giúp đỡ. Có gì còn thiếu sót các bạn dzu dzi nhé.
- Sau 1 ngày ngồi vọc VBA , tình hình là chưa biết viết, ( năng khiếu chắc không có). Cuối cùng mình chỉ biết dùng Record Macro để ghi lại, sau đó cũng chạy Macro nhìn có vẻ hơi ngố tý nhưng có lẽ vẫn hơn nhập tay. Mình xin gửi File có Code Macro, nhờ các bạn viết Code chuyển hóa lại dùm Code VBA chuyên nghiệp dùm nha. Mình đang thử mới 2 sheet , coi ổn không?( Chứ phải làm hết các tháng...), Mình dùng hàm INDEX , MATCH để viết.
- Nếu có Code VBA thì tự động láy data các tháng hiện hữu thì OK, Mình gửi luôn File Nguồn Hệ Thống, File Data, file DuLieu.Các bạn xem dùm có hợp lý không, Ah làm sao mình mạc định các số "0" thành khoảng trắng dùm. Xin chân thành cám ơn.
1) File DuLieu của mình sao giờ chọn Fillter để lọc thì không hiện gì hết --> mục đích là sau khi " Hoàn Thành" file DuLieu, mình sẽ lọc dòng mà mình Insert ban đầu ra, chỉ để lại copy dulieu giá trị dán vào file " NguồnHệ Thống" , từ đó Import vào phần mềm CTy. Mình có làm Ví dụ trong file DuLieu
2) Nếu không dùng Fillter thì bạn nào viết dùm thêm 1 Code xóa dòng ( thêm 1 Module) để sau khi " Hoàn Thành" file DuLieu, mình chạy xóa dòng đó ( dòng ban đầu mình Insert) , để chỉ còn giá trị data thôi, sau đó copy paste vào " Nguồn Hệ Thống".
Xin lỗi đã làm phiền các bạn viết Code.
 

File đính kèm

Web KT

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

Back
Top Bottom