Cũng là copy dữ liệu từ sheet này sang sheet khác (1 người xem)

Liên hệ QC

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

quoc_huy1702

Thành viên hoạt động
Tham gia
9/6/11
Bài viết
132
Được thích
20
Nghề nghiệp
NVVP
Chào cả nhà,
Mình có gút mắc này nhờ a e gỡ giúp
Mình chả là muốn copy dữ liệu như hình bên dưới (copy ô dữ liệu nào được tô màu xanh lá cây)

Cụ thể khi nhấn vào hình số 3 thì điều kiện để copy như sau:

Xét giá trị ô B5 sheet IN HOA DON trước xem có trùng với ô L5 bên sheet TD XUAT HANG hoặc là blank ko? Tiếp theo copy Giá trị ô [C28 –C34] VÀ [ E28 – E34] sheet IN HOA DON sẽ copy sang ô [G5 – G11] VÀ [H5 – H11] sheet TD XUAT HANG nếu ô G5 VÀ H5 đó còn trống; nếu ko trống( blank) thì COPY bắt đầu từ G6 VÀ H6 đi xuống.

Ví dụ: xét giá trị ô B5 sheet IN HOA DON hIện tại là số 110.ĐNXHĐ.2012; bên sheet TD XUAT HANG ô L5 và có giá trị nếu là 109.ĐNXHĐ.2012 hoặc blank thì ko copy . Còn thỏa điều kiện thì copy nội dung đơn hàng (giá trị[C28 –C34] VÀ [ E28 – E34] sheet IN HOA DON sẽ copy sang ô [G5 – G11] VÀ [H5 – H11] sheet TD XUAT HANG)

Ngoài ra, nếu nội dung trong đoạn từ [C28 – C34] nếu có bỏ trống thì ko copy qua sheet kia để tránh có thêm mấy dòng trống bên sheet kia.

Sau khi copy các nội dung trên xong sẽ copy các nội dung còn lại bao gồm F5,C15,C19,C24,C26 vào các vị trí tương ứng C5,B5,D5,J5,F5.
6-16-20127-03-31PM.png

File đính kèm
Link download
 
Lần chỉnh sửa cuối:
Chào cả nhà,
Mình có gút mắc này nhờ a e gỡ giúp
Mình chả là muốn copy dữ liệu như hình bên dưới (copy ô dữ liệu nào được tô màu xanh lá cây)

Cụ thể khi nhấn vào hình số 3 thì điều kiện để copy như sau:

Xét giá trị ô B5 sheet IN HOA DON trước xem có trùng với ô L5 bên sheet TD XUAT HANG hoặc là blank ko? Tiếp theo copy Giá trị ô [C28 –C34] VÀ [ E28 – E34] sheet IN HOA DON sẽ copy sang ô [G5 – G11] VÀ [H5 – H11] sheet TD XUAT HANG nếu ô G5 VÀ H5 đó còn trống; nếu ko trống( blank) thì COPY bắt đầu từ G6 VÀ H6 đi xuống.

Ví dụ: xét giá trị ô B5 sheet IN HOA DON hIện tại là số 110.ĐNXHĐ.2012; bên sheet TD XUAT HANG ô L5 và có giá trị nếu là 109.ĐNXHĐ.2012 hoặc blank thì ko copy . Còn thỏa điều kiện thì copy nội dung đơn hàng (giá trị[C28 –C34] VÀ [ E28 – E34] sheet IN HOA DON sẽ copy sang ô [G5 – G11] VÀ [H5 – H11] sheet TD XUAT HANG)

Ngoài ra, nếu nội dung trong đoạn từ [C28 – C34] nếu có bỏ trống thì ko copy qua sheet kia để tránh có thêm mấy dòng trống bên sheet kia.

Sau khi copy các nội dung trên xong sẽ copy các nội dung còn lại bao gồm F5,C15,C19,C24,C26 vào các vị trí tương ứng C5,B5,D5,J5,F5.
Nhìn màu mè chóng mặt quá.
Tặng bạn Code này, tùy nghi sử dụng.
PHP:
Public Sub GPE()
Dim Rng1(), Rng2(), Arr(), I As Long, J As Long, K As Long, So As Variant, STT As Long, DK As Long
    Rng1 = Sheet3.Range(Sheet3.[L3], Sheet3.[L65000].End(xlUp)).Value
    Rng2 = Sheet2.[C28:E34].Value
    STT = Sheet3.[A65000].End(xlUp).Value
    So = Sheet2.[B5].Value
ReDim Arr(1 To 7, 1 To 14)
    For I = 1 To UBound(Rng1, 1)
        If Rng1(I, 1) = So Then DK = DK + 1
    Next I
        If DK = 0 Then
            For J = 1 To 7
                If Rng2(J, 1) <> "" Then
                    K = K + 1
                    Arr(K, 1) = STT + K
                    Arr(K, 2) = Mid(Sheet2.[C15], 5, 250)
                    Arr(K, 3) = Sheet2.[F5].Value
                    Arr(K, 4) = Sheet2.[C19].Value
                    Arr(K, 5) = Sheet2.[C25].Value
                    Arr(K, 6) = Sheet2.[C26].Value
                    Arr(K, 7) = Rng2(J, 1)
                    Arr(K, 8) = Rng2(J, 3)
                    Arr(K, 10) = Sheet2.[C24].Value
                    Arr(K, 12) = Sheet2.[B5].Value
                    Arr(K, 13) = Sheet2.[C24].Value
                End If
            Next J
                MsgBox "Luu Xong"
        Else
            MsgBox "Phieu Da Co, Khong Luu"
        End If
    If K Then Sheet3.[A65000].End(xlUp).Offset(1).Resize(K, 14) = Arr
End Sub
 
xin cảm ơn chú Ba Tê đã giúp đỡ rất nhiều để giải quyết vấn đề trên.

Nay e lại gặp 1 vấn đề khác mà cũng đang ngoài tầm với của em. Nò cũng thuộc phạm vi copy dữ liệu vầy tuy nhiên có khác 1 chút

Cụ thể như sau:

Bây giờ là 2 file khác nhau.
File 1 chứa các dữ liệu cần copy với nhiều sheet (sheet 1, sheet 2, sheet n).
File 2 là địa chỉ được copy với 1 sheet duy nhất

Giờ ở file 1 em muốn tạo 1 cái list (sheet 1) danh sách dạng list box sẽ cập nhật tên sheet của tất cả các sheet có trong file 1.
Kèm theo là trong sheet 1 có 1 button ; khi ta chọn sheet trong list box và nhấn cái button đó thì sẽ copy các dữ liệu với các điều kiện như bài post 1 của e.
 
các thành viên GPE ơi; cái vấn đề bài post 3 phải bắt nguồn từ đâu?
 
Muốn thế nào thì đưa file cụ thể lên. Bài nào ra bài đó, mọi người không thể đi tìm bài trước đó để đọc và nghiên cứu điều kiện của bạn được đâu. Không có dữ liệu biết viết code thế nào đây?
 
Bạn xem thử file coi trúng chưa, chưa trúng thì tính tiếp
 

File đính kèm

cám ơn anh quanghai1969 rất nhiều vì đã giúp đỡ mình; cách giải quyết a đưa vào đã ổn thỏa cho bài toán e đang gặp phải. Hiện đang muốn điều chỉnh 1 số chỗ trong code mà e chưa rành. Xin anh chỉ bảo thêm

Ví dụ file đích sắp xếp lại như hình bên dưới thì cột lượng theo code hiện tại sẽ nhảy vào cột I, nay muốn đổi sang cột L thì chỉnh code chỗ nào ?
b8018f2d3345d285b9086c02416389fb_46908354.dulieudich2.jpg

Code đã chỉnh sửa

Sub chuyendulieu()Application.ScreenUpdating = False
On Error Resume Next
Dim arr1(), arr2(), i, dulieu
Dim arr3 As String, arr4 As String, tensheet As String, sh As Worksheet
tensheet = Sheets("tong hop").ComboBox1.Column(0)
Sheets(tensheet).Select
arr1 = Array([c15], [f5], [c19], [c25], [c26])
arr3 = [c24]: arr4 = [b5]
dulieu = Range([c28], [e28].End(4)).Value
ReDim arr2(1 To UBound(dulieu), 1 To 2)
For i = 1 To UBound(dulieu)
arr2(i, 1) = dulieu(i, 1)
arr2(i, 2) = dulieu(i, 3)
Next
Workbooks.Open ThisWorkbook.Path & "\TD XNT KHO THANG 07.xlsm"
With [B65536].End(3)
.Offset(1).Resize(UBound(dulieu), 5) = arr1
.Offset(1, 6).Resize(UBound(dulieu), 2) = arr2
.Offset(1, 5).Resize(UBound(dulieu), 1) = arr3
.Offset(1, 14).Resize(UBound(dulieu), 1) = arr4
End With
'Workbooks("TD XNT KHO THANG 07").Close True
Application.ScreenUpdating = True
End Sub
 
Hiện tại em đang gặp tình trạng dữ liệu copy bị dư ; như bên dưới nếu copy vào sheet tổng hợp để chuyển dữ liệu
93aedc5711ae55d9f0fa282e319d8341_46919681.duduieu.jpg

dff7f03fe6badc4c5008c9016868e9b5_46919684.duduieu2.jpg
 

File đính kèm

Hiện tại em đang gặp tình trạng dữ liệu copy bị dư ; như bên dưới nếu copy vào sheet tổng hợp để chuyển dữ liệu
93aedc5711ae55d9f0fa282e319d8341_46919681.duduieu.jpg

dff7f03fe6badc4c5008c9016868e9b5_46919684.duduieu2.jpg

File lúc đầu thì bạn bố trí file đích 1 kiểu, giờ bạn thay đổi cấu truc dữ liệu thì chạy sao đặng
 
File lúc đầu thì bạn bố trí file đích 1 kiểu, giờ bạn thay đổi cấu truc dữ liệu thì chạy sao đặng
Do yêu cầu theo dõi nên em chỉnh sửa code lại 1 tí, theo như chỉnh sửa thì các sheet củ vẫn copy đúng dòng trừ các sheet mới thêm vào? ko hiểu là do đổi thứ tự copy hay do cấu trúc file mới ko phù hợp
 
Web KT

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

Back
Top Bottom