Lấy dữ liệu cách dòng bằng VBA từ sheet tổng sang 2 sheet con

Liên hệ QC

Thien

Thành viên thường trực
Tham gia
23/6/06
Bài viết
352
Được thích
112
Thân chào cả nhà,

Hiện tại T đang muốn lấy dữ liệu từ sheet MHDV sang sheet ChungTu và ChungTuChiTiet như trong file đình kèm
Nguyên tắc lấy dữ liệu như sau:
- dòng đầu tiên (trừ dòng tiêu đề) bên sheet MHDV lấy sang sheet ChungTuChiTiet
- dòng kế đến sheet MHDV lấy sang sheet ChungTu

cứ thế lấy cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho mình code VBA lấy dữ liệu nha

Chân thành cảm ơn và trân trọng
 

File đính kèm

  • Lay du lieu cach dong bang VBA.xls
    715.5 KB · Đọc: 17
Tức là Dòng 2 sheet MHDV đưa sang Sheet Chungtuchitiet
Dòng 3 sheet MHDV đưa sang Sheet Chungtu
Dòng 4 sheet MHDV đưa sang Sheet Chungtuchitiet
Dòng 5 sheet MHDV đưa sang Sheet Chungtu
......
Cứ lặp lại như thế ấy hả bạn?
 
Upvote 0
Thân chào cả nhà,

Hiện tại T đang muốn lấy dữ liệu từ sheet MHDV sang sheet ChungTu và ChungTuChiTiet như trong file đình kèm
Nguyên tắc lấy dữ liệu như sau:
- dòng đầu tiên (trừ dòng tiêu đề) bên sheet MHDV lấy sang sheet ChungTuChiTiet
- dòng kế đến sheet MHDV lấy sang sheet ChungTu

cứ thế lấy cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho mình code VBA lấy dữ liệu nha

Chân thành cảm ơn và trân trọng
Kiểu này làm công thức cũng được mà bạn, sheet chungtuchitiet lấy những dòng có row(...)/2= 1,2,3,4...
Sheet chungtu lấy những dòng có row(...)/2=(1,2,3,4...)+0.5
Mấy số 1,2,3,4 lấy theo số dòng của sheet hiện hành
 
Lần chỉnh sửa cuối:
Upvote 0
Thân chào cả nhà,

Hiện tại T đang muốn lấy dữ liệu từ sheet MHDV sang sheet ChungTu và ChungTuChiTiet như trong file đình kèm
Nguyên tắc lấy dữ liệu như sau:
- dòng đầu tiên (trừ dòng tiêu đề) bên sheet MHDV lấy sang sheet ChungTuChiTiet
- dòng kế đến sheet MHDV lấy sang sheet ChungTu

cứ thế lấy cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho mình code VBA lấy dữ liệu nha

Chân thành cảm ơn và trân trọng
Thêm cột chứng từ rồi ghi Chungtuchitiet và Chungtu tương ứng từng dòng rồi sử dụng code tách sheet là được kết quả.
 
Upvote 0
Tức là Dòng 2 sheet MHDV đưa sang Sheet Chungtuchitiet
Dòng 3 sheet MHDV đưa sang Sheet Chungtu
Dòng 4 sheet MHDV đưa sang Sheet Chungtuchitiet
Dòng 5 sheet MHDV đưa sang Sheet Chungtu
......
Cứ lặp lại như thế ấy hả bạn?

Đúng rồi bạn, bạn vui lòng cho mình code nhé

Thân chào
Bài đã được tự động gộp:

Thêm cột chứng từ rồi ghi Chungtuchitiet và Chungtu tương ứng từng dòng rồi sử dụng code tách sheet là được kết quả.

Chào bạn

Bạn cho code nhé

Thân chào
 
Upvote 0
Yêu cầu lấy dữ liệu của các sheet không giống thứ tự cột.
Bạn phải nhập số cột của sheet MHDV vào dòng 2 của sheet ChungTu và CT_Chitiet trong file rồi chạy code
 

File đính kèm

  • Lay du lieu cach dong bang VBA (1).xlsm
    408 KB · Đọc: 10
Upvote 0
Yêu cầu lấy dữ liệu của các sheet không giống thứ tự cột.
Bạn phải nhập số cột của sheet MHDV vào dòng 2 của sheet ChungTu và CT_Chitiet trong file rồi chạy code

Chào bạn

Cám ơn bạn đã sẽ chia, hiện tại có 2 vấn đề cần chỉnh code lại một chút:
- Thêm dòng code gán số cột của sheet MHDV vào dòng 2 của sheet ChungTu và CT_Chitiet trong file rồi chạy code, sau khi chạy xong xoá dòng này ở 2 sheet ChungTu và CT_Chitiet (như file đính kèm).
- Số tiền của dòng đầu tiên ở cột PhatSinh lấy sang sheet ChungTuChiTiet, Số tiền của dòng thứ 2 ở cột PhatSinh lấy sang sheet ChungTu (hiện tại code đang lấy ngược lại, bạn xem lại 2 cột mình tô vàng nhé) .

Chân thành cám ơn bạn.

P/S: Mình đang tự chỉnh nhưng chạy không như ý, mong bạn nhín thời gian chỉ giúp.
 

File đính kèm

  • Lay du lieu cach dong bang VBA (1).xlsm
    410.3 KB · Đọc: 6
Upvote 0
Chào bạn

Cám ơn bạn đã sẽ chia, hiện tại có 2 vấn đề cần chỉnh code lại một chút:
- Thêm dòng code gán số cột của sheet MHDV vào dòng 2 của sheet ChungTu và CT_Chitiet trong file rồi chạy code, sau khi chạy xong xoá dòng này ở 2 sheet ChungTu và CT_Chitiet (như file đính kèm).
- Số tiền của dòng đầu tiên ở cột PhatSinh lấy sang sheet ChungTuChiTiet, Số tiền của dòng thứ 2 ở cột PhatSinh lấy sang sheet ChungTu (hiện tại code đang lấy ngược lại, bạn xem lại 2 cột mình tô vàng nhé) .

Chân thành cám ơn bạn.

P/S: Mình đang tự chỉnh nhưng chạy không như ý, mong bạn nhín thời gian chỉ giúp.
1/ Tôi nhầm kết quả dòng nào sang sheet nào. Đã chỉnh lại trong code.
2/ Chuyện tạo code gán số vào dòng 2, chạy xong xóa dòng 2, tôi không "rảnh" để làm chuyện đó. Bạn có thể ẩn dòng đó mà.
 

File đính kèm

  • Lay du lieu cach dong bang VBA (2).xlsm
    420.7 KB · Đọc: 13
Upvote 0
1/ Tôi nhầm kết quả dòng nào sang sheet nào. Đã chỉnh lại trong code.
2/ Chuyện tạo code gán số vào dòng 2, chạy xong xóa dòng 2, tôi không "rảnh" để làm chuyện đó. Bạn có thể ẩn dòng đó mà.

Do import vào phần mềm nên phải xoá dòng đó ở 2 sheet ạ.


Cám ơn bạn hướng dẫn
 
Upvote 0
Không biết vì sao Khi nâng số dòng dữ liệu bên sheet MHDV lên 100 dòng thì tự nhiên code báo lỗi ngay dòng aCT(K2, J) = sArr(I + 1, CoL_CT(1, J))

BẠn nào biết giải thích với.

Thân chào
 

File đính kèm

  • Lay du lieu cach dong bang VBA (2).xlsm
    417.5 KB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
Không biết vì sao Khi nâng số dòng dữ liệu bên sheet MHDV lên 100 dòng thì tự nhiên code báo lỗi ngay dòng aCT(K2, J) = sArr(I + 1, CoL_CT(1, J))

BẠn nào biết giải thích với.

Thân chào
Khi đó ubound(sarr,1)=99 nhưng I lặp từ 1,3,5,7,...,99. Tại I=99 thì I+1=100 vượt số dòng sarr nên bị lỗi "out of range" đó bạn.
 
Upvote 0
Không biết vì sao Khi nâng số dòng dữ liệu bên sheet MHDV lên 100 dòng thì tự nhiên code báo lỗi ngay dòng aCT(K2, J) = sArr(I + 1, CoL_CT(1, J))

BẠn nào biết giải thích với.

Thân chào
Do giải thích, cứ 1 dòng chi tiết, 1 dòng chứng từ, nhưng sheet MHDV dòng cuối cùng lấy sang Chi tiết, không có dòng Chứng từ.
Code "tèo".
 
Upvote 0
Thân chào cả nhà,

Hiện tại T đang muốn lấy dữ liệu từ sheet MHDV sang sheet ChungTu và ChungTuChiTiet như trong file đình kèm
Nguyên tắc lấy dữ liệu như sau:
- dòng đầu tiên (trừ dòng tiêu đề) bên sheet MHDV lấy sang sheet ChungTuChiTiet
- dòng kế đến sheet MHDV lấy sang sheet ChungTu

cứ thế lấy cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho mình code VBA lấy dữ liệu nha

Chân thành cảm ơn và trân trọng
Điều kiện Tài khoản Nợ là 133 đưa vào sheet chứng từ còn lại đưa vào sheet chi tiết
 
Upvote 0
Điều kiện Tài khoản Nợ là 133 đưa vào sheet chứng từ còn lại đưa vào sheet chi tiết

Dòng đầu bên sheet MHDV là tiền hàng thì mang qua ChungTuChiTiet, còn dòng kế tiếp là tiền thuế thì mang qua sheet ChungTu. Cứ thế tiếp tục cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho code xử lý nha.

Thân chào
 
Upvote 0
Dòng đầu bên sheet MHDV là tiền hàng thì mang qua ChungTuChiTiet, còn dòng kế tiếp là tiền thuế thì mang qua sheet ChungTu. Cứ thế tiếp tục cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho code xử lý nha.

Thân chào
Mấy hôm nay bận quá giờ mới làm giúp cho bạn, cách sử dụng:
1/ Copy dữ liệu và Paste vào sheet MHDV, xong nhấn nút để xem kết quả.
2/ Lưu ý: Cột T (Loại chứng từ) ở sheet MHDV tôi thêm vào để phân biệt dữ liệu nào của sheet nào, từng loại chứng từ ở cột này phài giống như tên sheet ChungTuChiTiet và ChungTu.
 

File đính kèm

  • Tach Chung Tu.xlsm
    277.9 KB · Đọc: 7
Lần chỉnh sửa cuối:
Upvote 0
Mấy hôm nay bận quá giờ mới làm giúp cho bạn, cách sử dụng:
1/ Copy dữ liệu và Paste vào sheet MHDV, xong nhấn nút để xem kết quả.
2/ Lưu ý: Cột T (Loại chứng từ) ở sheet MHDV tôi thêm vào để phân biệt dữ liệu nào của sheet nào, từng loại chứng từ ở cột này phài giống như tên sheet ChungTuChiTiet và ChungTu.

Cám ơn bạn nhiều nhé
Hiện tại mình tự viết đoạn code vô cùng gà luôn nhưng tạm đáp ứng được yêu cầu của công việc.
Mình nhờ bạn và các cao thủ VBA vui lòng:
- Tối ưu đoạn code nhanh, gọn, lẹ và chuyên nghiệp hơn (nhằm học hỏi và ứng dụng vào các việc khác).
- Có đoạn code hoặc công thức nào hay (mình thấy công thức của mình củ chuối quá) để gán loại chứng từ ở cột T sheet MHDV không? chỉ mình nhé.
- Bên sheet ChungTuChiTiet sao cứ ở chế độ chọn từ dòng đầu đến dòng cuối của dữ liệu, để bỏ chọn thì chỉnh code chỗ đoạn nào ạ.

Chân thành cám ơn bạn và cả nhà.
Trân trọng
 

File đính kèm

  • Tach Chung Tu 2.xlsm
    870 KB · Đọc: 7
Lần chỉnh sửa cuối:
Upvote 0
Thân chào cả nhà,

Hiện tại T đang muốn lấy dữ liệu từ sheet MHDV sang sheet ChungTu và ChungTuChiTiet như trong file đình kèm
Nguyên tắc lấy dữ liệu như sau:
- dòng đầu tiên (trừ dòng tiêu đề) bên sheet MHDV lấy sang sheet ChungTuChiTiet
- dòng kế đến sheet MHDV lấy sang sheet ChungTu

cứ thế lấy cho đến hết dữ liệu bên sheet MHDV

Cả nhà cho mình code VBA lấy dữ liệu nha

Chân thành cảm ơn và trân trọng
Chạy code
Mã:
  Sub ABC()
  Dim sArr(), aThue(), aChi(), aCoL_Thue, aCoL_Chi
  Dim sRow&, i&, j&, k&, k2&
  
  With Sheets("MHDV")
    sArr = .Range("A2:S" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow = UBound(sArr)
    
  aCoL_Thue = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 19, 17, 0, 0, 14, 18)
  aCoL_Chi = Array(2, 15, 16, 0, 0, 0, 0, 0, 0, 0, 17, 0, 11, 7, 18)
  ReDim aThue(1 To sRow, 0 To UBound(aCoL_Thue))
  ReDim aChi(1 To sRow, 0 To UBound(aCoL_Chi))
  
  For i = 1 To sRow
    If InStr(1, sArr(i, 15), "133") = 1 Then
      k = k + 1
      For j = 0 To UBound(aCoL_Thue)
        If aCoL_Thue(j) > 0 Then
          aThue(k, j) = sArr(i, aCoL_Thue(j))
        End If
      Next j
    Else
      k2 = k2 + 1
      For j = 0 To UBound(aCoL_Chi)
        If aCoL_Chi(j) > 0 Then
          aChi(k2, j) = sArr(i, aCoL_Chi(j))
        End If
      Next j
    End If
  Next i
  With Sheets("ChungTu")
    i = .Range("A" & Rows.Count).End(xlUp).Row
    If i > 2 Then .Range("A2:W" & i).ClearContents
    If k Then
      .Range("D2").Resize(k).NumberFormat = "@"
      .Range("F2").Resize(k).NumberFormat = "@"
      .Range("I2").Resize(k).NumberFormat = "@"
      .Range("A2").Resize(k, 18) = aThue
    End If
  End With
  With Sheets("ChungTuChiTiet")
    i = .Range("A" & Rows.Count).End(xlUp).Row
    If i > 2 Then .Range("A2:O" & i).ClearContents
    If k2 Then
      .Range("N2").Resize(k2).NumberFormat = "@"
      .Range("A2").Resize(k2, 15) = aChi
    End If
  End With
End Sub
 
Upvote 0
Web KT
Back
Top Bottom