Giúp. Tự động cập nhật dữ liệu của nhiều Sheet khác nhau vào 1 sheet có điều kiện (1 người xem)

Liên hệ QC

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

choikangu

Thành viên mới
Tham gia
20/8/10
Bài viết
4
Được thích
0
Mình có dữ liệu KH như file đính kèm.

Mấy bác pro giúp mình chút chỗ này nhé:

Làm sao để khi mình cập nhật thêm thông tin KH vào các sheet: THIT, CA, TRUNG, RAU thì nó sẽ tự động cập nhật tiếp tục một số thông tin vào sheet KHACH HANG mà không bị đè lên các thông tin đã có sẵn. thay vị mình phải copy/paste

ví dụ: trong sheet CA mình nhập thêm thông tin 1 KH: TH089/HOÀNG/Q.5/8383695/"12/02/2014"/CÁ LÓC/Kg/20/36000/7200000/NỢ

Thì nó sẽ tự động cập nhật thêm KH thứ 31 vào sheet KHACH HANG

CẢM ƠN.
 

File đính kèm

Mình có dữ liệu KH như file đính kèm.

Mấy bác pro giúp mình chút chỗ này nhé:

Làm sao để khi mình cập nhật thêm thông tin KH vào các sheet: THIT, CA, TRUNG, RAU thì nó sẽ tự động cập nhật tiếp tục một số thông tin vào sheet KHACH HANG mà không bị đè lên các thông tin đã có sẵn. thay vị mình phải copy/paste

ví dụ: trong sheet CA mình nhập thêm thông tin 1 KH: TH089/HOÀNG/Q.5/8383695/"12/02/2014"/CÁ LÓC/Kg/20/36000/7200000/NỢ

Thì nó sẽ tự động cập nhật thêm KH thứ 31 vào sheet KHACH HANG

CẢM ƠN.
Mở File và nhập thêm dữ liệu vào bất kì các sheet "THIT", "CÁ", "TRỨNG", "RAU" và xem kết quả đã đúng ý chưa nhé! Có gì hồi âm lại cho mình!
P/S: Nhớ Enable Macos trước khi mở File nhé(Xem hướng dẫn tại chữ kí bên dưới của tôi).

 

File đính kèm

File này bổ sung thêm cả cột nhãn hàng nữa!
 

File đính kèm

Chào các bạn trên GPE, mặc dù yêu cầu của topic này bằng các kiến thức đã học hỏi được trên GPE tôi đã giúp được tác giả nhưng thấy code của mình có vẻ không ổn lắm, nó cứ sao sao ấy . Mong mọi người xem qua và tối ưu giúp tôi với!
Chân thành cảm ơn!
Mình thấy file của bác có chút lỗi là khi xóa dòng từ các sheet kia thì dòng khách hàng tương ứng ko mất! hoặc chẳng may điền sai, xóa đi điền lại nó nhảy tọt luôn 1 khách hàng mới!
Bác cập nhật tiếp đi
 
Bạn có thể khắc phục giúp mình lỗi này không?
Vừa muốn nhập, vừa muốn xoá, vừa muốn sửa "lung tung beng" thì dùng tạm Sub này cho sheet "KHACH HANG" xem sao.
Nguyên tắc là "thằng" nào ngày trước thì "nằm trên", "em" nào ngày sau thì "nằm dưới" và ngoại trừ 2 sheet "KHACH HANG" và "BANG GIA" thì đều là các sheet "RAU CỦ QUẢ..." cần lấy, không có sheet "tào lao" xen thêm.
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim sArr(), dArr(1 To 1000, 1 To 8), I As Long, J As Long, K As Long, Ws As Worksheet
For Each Ws In Worksheets
If Ws.Name <> "KHACH HANG" And Ws.Name <> "BANG GIA" Then
If Ws.[B65000].End(xlUp).Row > 2 Then
sArr = Ws.Range(Ws.[B2], Ws.[B65000].End(xlUp)).Resize(, 13).Value
For I = 2 To UBound(sArr, 1)
K = K + 1
dArr(K, 1) = K
For J = 1 To 5
dArr(K, J + 1) = sArr(I, J)
Next J
dArr(K, 7) = Ws.Name
dArr(K, 8) = sArr(I, 13)
Next I
End If
End If
Next Ws
With Sheets("KHACH HANG")
.[A3:H1000].ClearContents
If K Then
.[A3].Resize(K, 8) = dArr
.[B3].Resize(K, 7).Sort Key1:=.[F3]
End If
End With
End Sub[/GPECODE]
 
Lần chỉnh sửa cuối:
bổ sung

Cảm ơn chuot0106 nhiều nhé

file của bản đưa rất hữu ích với mình.

mình còn chút nữa là phù hợp yêu cầu của mình rồi. bạn giúp nốt nhé

bạn có thể viết code cho điều kiện này được không? giả sử như nếu nhập dữ liệu từ sheet CA thì ô HÀNG HÓA ở sheet QLKH sẽ hiện là CÁ, nếu từ sheet RAU ở sheet QLKH sẽ hiện RAu, ở sheet thịt thì nó sẽ hiện Thịt trong sheet QLKH.

nếu mình copy 1 dòng trong ô cá và pates, chỉ chuột đi chỗ khác, thì nó không ghi dữ liệu vào QLKH. lỗi này có thể sửa không bạn.

à còn ô GHI CHÚ nó ko ghi lại bạn ạ

cảm ơn bạn nhiều.

CẢm ơn bạn nhé
 
Lần chỉnh sửa cuối:
Sheet CA, RAU,TRUNG dữ liệu tới cột L, tự nhiên sheet THIT thì ló ra 1 khúc tới cột M vậy mà cũng code được tài thiệt. Hix.
 
đúng rồi, chính là như vậy. gần hoàn chỉnh theo yêu cầu của mình rồi?

còn 1 chút xíu nữa đó là chỉnh sửa và copy/paste. mình có thể sử dụng đoạn code như Ba Tê nêu ở trên ko?

Mình ko rành macro nên ko biết làm sao? Chuột pro chỉ mình luôn nhé. Cảm ơn bạn.
 
đúng rồi, chính là như vậy. gần hoàn chỉnh theo yêu cầu của mình rồi?

còn 1 chút xíu nữa đó là chỉnh sửa và copy/paste. mình có thể sử dụng đoạn code như Ba Tê nêu ở trên ko?

Mình ko rành macro nên ko biết làm sao? Chuột pro chỉ mình luôn nhé. Cảm ơn bạn.
Sao không thử nhỉ? Các sheet con ngoài sheet "THIT" phải chèn thêm 1 cột cho cột Ghi chú nằm đúng cột M để quanghai1969 khỏi "thọt lét". (Không xài thì ẩn đi)
 

File đính kèm

Lần chỉnh sửa cuối:
Sao không thử nhỉ? Các sheet con ngoài sheet "THIT" phải chèn thêm 1 cột cho cột Ghi chú nằm đúng cột M để quanghai1969 khỏi "thọt lét". (Không xài thì ẩn đi)

Perfect!
Bác thật là cao thủ.
mình đang có 1 vấn đề muốn nhờ bác, bác giúp được ko?
vấn đề của mình tương tự như của chủ thớt này, nhưng nó phức tạp hơn vì file excel của mình nó có tới ~50 sheet. :D
bác ở đâu vậy, hôm nào anh em cafe trao đổi tý!:D
 
Sao không thử nhỉ? Các sheet con ngoài sheet "THIT" phải chèn thêm 1 cột cho cột Ghi chú nằm đúng cột M để quanghai1969 khỏi "thọt lét". (Không xài thì ẩn đi)
Anh nè, lỡ người ta nhất định không chịu thêm cột thì sao??? ha ha ha
Em code kiểu này chạy chậm hơn code của anh vì phải chạy lại cột STT nhưng không phải thêm cột rồi giấu mất
PHP:
Sub tonghop()
Application.ScreenUpdating = False
Dim ws As Worksheet, TIEUDE(), GHICHU(), Col, Row
With Sheets("KHACH HANG")
    .[A3:H10000].ClearContents
    For Each ws In Worksheets
        If ws.Name <> "KHACH HANG" Then
            If ws.Name <> "BANG GIA" Then
                TIEUDE = ws.Range(ws.[B3], ws.[F65536].End(3)).Value
                Col = ws.[IV2].End(1).Offset(1).Column
                Row = ws.[B65536].End(3).Row
                GHICHU = ws.Range(ws.Cells(3, Col), ws.Cells(Row, Col)).Value
                With .[B65536].End(3)
                    .Offset(1).Resize(UBound(TIEUDE), 5) = TIEUDE
                    .Offset(1, 5).Resize(UBound(TIEUDE)) = ws.Name
                    .Offset(1, 6).Resize(UBound(TIEUDE)) = GHICHU
                End With
                .Range(.[B2], .[B65536].End(3)).Resize(, 7).Sort .[F2], Header:=1
                .Range(.[B3], .[B65536].End(3)).Offset(, -1) = [Row(a:a)]
            End If
        End If
    Next
End With
Application.ScreenUpdating = True
End Sub
 
Chuẩn men. Cảm ơn bạn. Đúng yêu cầu của mình rồi.

À cho mình hỏi chút luôn nhế Ba Tê.

với yêu cầu như của mình, bạn chỉ có viết code cho sheet KHACH HANG thôi hay còn sử dụng những công cụ khác nữa. nếu có thì bạn chỉ cho mình với để mình học hỏi nhé.
 
Lần chỉnh sửa cuối:
Sao không thử nhỉ? Các sheet con ngoài sheet "THIT" phải chèn thêm 1 cột cho cột Ghi chú nằm đúng cột M để quanghai1969 khỏi "thọt lét". (Không xài thì ẩn đi)
Còn 1 chút nữa đó là file của bác bị lỗi về thứ tự, chẳng hạn bên sheet thịt mình tạo danh sách khách hàng nhưng sang sheet tổng thì thứ tự của nó bị đảo lộn, bác fix được thì hay quá!
 
Còn 1 chút nữa đó là file của bác bị lỗi về thứ tự, chẳng hạn bên sheet thịt mình tạo danh sách khách hàng nhưng sang sheet tổng thì thứ tự của nó bị đảo lộn, bác fix được thì hay quá!
Bạn dùng kiểu gì vậy? Tôi thấy thứ tự đâu bị đảo lộn.
 
Web KT

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

Trả lời
42
Đọc
17K
Back
Top Bottom