Lọc dữ liệu từ sheet khác và tự động cập nhật khi thay đổi (1 người xem)

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

Em khong biet

Thành viên hoạt động
Tham gia
2/12/14
Bài viết
110
Được thích
11
E xin chào các bác ở diễn đàn
E có một file bán hàng, các bác làm ơn cho e hỏi làm thế nào để tự động cập nhật dữ liệu ở Bảng 1 (cột C (Trạng thái đóng hàng)) tình trạng là "Mới đặt" sang sheet Bảng 2, và khi bảng 1 thay đổi Trạng thái đóng hàng khác như: đã gửi hay đã đóng... thì bảng 2 sẽ tự động cập nhật là xuất hiện nữa (tức là bảng 2 chỉ hiện thị trạng thái là Mới đặt thôi ạ)
Em xin chân thành cảm ơn ạ!

 
E xin chào các bác ở diễn đàn
E có một file bán hàng, các bác làm ơn cho e hỏi làm thế nào để tự động cập nhật dữ liệu ở Bảng 1 (cột C (Trạng thái đóng hàng)) tình trạng là "Mới đặt" sang sheet Bảng 2, và khi bảng 1 thay đổi Trạng thái đóng hàng khác như: đã gửi hay đã đóng... thì bảng 2 sẽ tự động cập nhật là xuất hiện nữa (tức là bảng 2 chỉ hiện thị trạng thái là Mới đặt thôi ạ)
Em xin chân thành cảm ơn ạ!

Trong khi chờ đợi thử tham khảo công thức sau:

A11=SORT(FILTER('Bảng 1'!$A$3:$Q$304;('Bảng 1'!$C$3:$C$304="Mới đặt")))
Nhấn Enter để được kết quả.
 
em cảm ơn bác ạ
nhưng bác ơi làm sao để nó tự kẻ bảng luôn cho mình nhỉ
 

File đính kèm

  • Screenshot (85).png
    Screenshot (85).png
    257 KB · Đọc: 8
  • Screenshot (86).png
    Screenshot (86).png
    193.2 KB · Đọc: 8
Bác làm ơn cho e hỏi thêm một chút được không ạ?
Ở Bảng 1, làm thế nào để e gõ bất kỳ ký tự ở cột A (ID đơn hàng) thì cột C (trạng thái đóng hàng) tự động nhảy là Mới đặt ko ạ (mà khi nào cần thiết mình vẫn có thể chọn những lựa chọn khác như đã đóng, đã gửi, bom,… ở cột C)
 
Bác làm ơn cho e hỏi thêm một chút được không ạ?
Ở Bảng 1, làm thế nào để e gõ bất kỳ ký tự ở cột A (ID đơn hàng) thì cột C (trạng thái đóng hàng) tự động nhảy là Mới đặt ko ạ (mà khi nào cần thiết mình vẫn có thể chọn những lựa chọn khác như đã đóng, đã gửi, bom,… ở cột C)
Nếu bảng tính của bạn là google sheet thì phải viết Google Scrip=> khoản này tôi đầu hàng.
Nếu bảng tính của bạn là thuần Excel thì phải dùng VBA, hoặc các ngôn ngữ lập trình khác như python, ....
Nếu bạn muốn sử dụng bảng tính như điều bạn đề nghị (dùng VBA) thì có thể tham khảo file sau.
Khi bạn nhập vào cột A 1 chuỗi 6 ký tự là số (ví dụ 123456) và di chuyển chuột sang ô khác (ví dụ Enter) thì cột C sẽ là "Mới đặt". Nếu đã có sẵn chuỗi đó rồi thì khi nháy đúp chuột vào ô đó và enter thì cũng được kết quả.
Lưu Ý: Nhớ unlock cho bảng tính khi tải về nhé.
 

File đính kèm

Khi bạn nhập vào cột A 1 chuỗi 6 ký tự là số (ví dụ 123456) và di chuyển chuột sang ô khác (ví dụ Enter) thì cột C sẽ là "Mới đặt". Nếu đã có sẵn chuỗi đó rồi
Bạn chưa bẫy lỗi: nếu sửa mã hàng (cột A) ở các dòng cũ thì nó cũng cập nhật trạng thái thành "mới đặt" luôn.:)

Sẳn đây tôi có thắc mắc về một tên workbook "lạ" xuất hiện trong file. Mà tên này tôi cũng đã thấy ở một số file khác, không biết là gì? có phải bị virus không nhỉ?

tenla.png
 
Nếu bảng tính của bạn là google sheet thì phải viết Google Scrip=> khoản này tôi đầu hàng.
Nếu bảng tính của bạn là thuần Excel thì phải dùng VBA, hoặc các ngôn ngữ lập trình khác như python, ....
Nếu bạn muốn sử dụng bảng tính như điều bạn đề nghị (dùng VBA) thì có thể tham khảo file sau.
Khi bạn nhập vào cột A 1 chuỗi 6 ký tự là số (ví dụ 123456) và di chuyển chuột sang ô khác (ví dụ Enter) thì cột C sẽ là "Mới đặt". Nếu đã có sẵn chuỗi đó rồi thì khi nháy đúp chuột vào ô đó và enter thì cũng được kết quả.
Lưu Ý: Nhớ unlock cho bảng tính khi tải về nhé.

Bạn chưa bẫy lỗi: nếu sửa mã hàng (cột A) ở các dòng cũ thì nó cũng cập nhật trạng thái thành "mới đặt" luôn.:)

Sẳn đây tôi có thắc mắc về một tên workbook "lạ" xuất hiện trong file. Mà tên này tôi cũng đã thấy ở một số file khác, không biết là gì? có phải bị virus không nhỉ?

View attachment 312711

Hay quá em cảm ơn các bác nhiều ạ
 
Bạn chưa bẫy lỗi: nếu sửa mã hàng (cột A) ở các dòng cũ thì nó cũng cập nhật trạng thái thành "mới đặt" luôn.:)

Sẳn đây tôi có thắc mắc về một tên workbook "lạ" xuất hiện trong file. Mà tên này tôi cũng đã thấy ở một số file khác, không biết là gì? có phải bị virus không nhỉ?

View attachment 312711
Cảm ơn anh đã xem bài và phản hồi. Tôi thì tôi đoán Ý của bạn chủ thớt là khi nhập bất kỳ ký tự nào của côt A (khi ấy cột C -Trạng thái ) sẽ nhảy thành Mới đặt, và thấy ID đơn hàng là 6 chữ số nên mới làm thế.
Còn cái sh là ấy, hình đó là ThisWorkbook. Trên máy tôi kiểm tra không thấy virut và khi mở mới 1 workbook nó cũng có các So_Cla.... ấy.
 
ThisWorkbook
Cảm ơn anh đã xem bài và phản hồi. Tôi thì tôi đoán Ý của bạn chủ thớt là khi nhập bất kỳ ký tự nào của côt A (khi ấy cột C -Trạng thái ) sẽ nhảy thành Mới đặt, và thấy ID đơn hàng là 6 chữ số nên mới làm thế.
Còn cái sh là ấy, hình đó là ThisWorkbook. Trên máy tôi kiểm tra không thấy virut và khi mở mới 1 workbook nó cũng có các So_Cla.... ấy.
em nghĩ Excel cài bản Tiếng Việt họ đặt tên ThisWorkbook là Sổ làm việc này nhưng do lỗi font Tiếng Việt trong vba nên hiển thị thành thế thôi bác ạ!
 
khi bảng 1 thay đổi Trạng thái
Tìm trong kho cổ và thấy đoạn code này : Tách sheet theo value cột ...
Dành cho các thành viên mới ngâm cứu...
Từ khóa : Tách 1 sheet thành nhiều sheet
Mã:
'Button xoa các sheet vua tach
Sub DeleteAllExceptSpecificSheets()
    Dim ws As Worksheet
    Application.DisplayAlerts = False
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "All" Then   'And ws.Name <> "MucLuc" Then
            ws.Delete
        End If
    Next ws
    Application.DisplayAlerts = True
End Sub
Mã:
'Button Tach lại tu dau'
Sub SplitTableByColumn()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim uniqueValues As Collection
    Dim cell As Range
    Dim destSheet As Worksheet
    Dim columnName As String
    Dim filteredTable As ListObject
    Dim i As Integer
    
    ' the table1 with all data
    Set ws = ThisWorkbook.Sheets("All")
    Set tbl = ws.ListObjects("Table2")
    columnName = "TrangThai"

    'Xoa sheet cu
    DeleteAllExceptSpecificSheets
    
    ' Tao danh sach khong trung
    Set uniqueValues = New Collection
    On Error Resume Next
    For Each cell In tbl.ListColumns(columnName).DataBodyRange
        uniqueValues.Add cell.Value, CStr(cell.Value)
    Next cell
    On Error GoTo 0
    
    ' Vong lap tao danh sach
    For i = 1 To uniqueValues.Count
        ' Them sheet
        Set destSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        destSheet.Name = uniqueValues(i) ' Adjust the sheet naming convention as needed

        ' Filter the table
        tbl.Range.AutoFilter Field:=tbl.ListColumns(columnName).Index, Criteria1:=uniqueValues(i)

        ' Copy to the new sheet
        tbl.Range.SpecialCells(xlCellTypeVisible).Copy Destination:=destSheet.Cells(5, 2)
        destSheet.Range("B5:S5").ColumnWidth = 15
        ' Clear the filter
        ws.AutoFilterMode = False
    Next i
    
    ws.Activate
    ws.Range("a4").AutoFilter
    End Sub
...
 

File đính kèm

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

Back
Top Bottom