Làm sao để hiển thị dữ liệu dưới dạng cây

  • Thread starter Thread starter Ngoc Tam
  • Ngày gửi Ngày gửi
Liên hệ QC

Ngoc Tam

Thành viên mới
Tham gia
13/2/09
Bài viết
32
Được thích
3
Mình muốn quản lý dữ liệu (trong sheet 1) dưới dạng cây, nói chung là y chang như Group (như mình đã làm trong Sheet 2)
Nhưng mình muốn cái dấu + nó nằm ngay mỗi Parent Doc (chứ không nằm ngoài lề như Group).
Các bạn giúp mình nhé.
Dùng công cụ trong Excel hay viết VBA, các bạn hướng dẫn mình nhé (VBA mình chưa rành, không thể tự viết, nhưng đọc code thì hiểu được)
Thanks các bạn.
 

File đính kèm

Mình muốn quản lý dữ liệu (trong sheet 1) dưới dạng cây, nói chung là y chang như Group (như mình đã làm trong Sheet 2)
Nhưng mình muốn cái dấu + nó nằm ngay mỗi Parent Doc (chứ không nằm ngoài lề như Group).
Các bạn giúp mình nhé.
Dùng công cụ trong Excel hay viết VBA, các bạn hướng dẫn mình nhé (VBA mình chưa rành, không thể tự viết, nhưng đọc code thì hiểu được)
Thanks các bạn.


Gán code này

PHP:
Sub GroupTree()
    Application.ScreenUpdating = False
    Sheet2.Range("A3:M5000").Clear
    Sheet2.Range("A3") = "Grand Count"
    With Sheet1
        For i = 3 To .Range("O500").End(xlUp).Row
            n = Sheet2.Range("A6000").End(xlUp).Row
            Sheet2.Range("A" & n + 1) = .Range("O" & i) & " Count"
            Sheet2.Range("B" & n + 1) = WorksheetFunction.CountIf(.Range("A:A"), .Range("O" & i))
            n = Sheet2.Range("A6000").End(xlUp).Row
            .Range("A2").AutoFilter 1, .Range("O" & i)
            .Range("A2").CurrentRegion.Copy Destination:=Sheet2.Range("A" & n + 1)
            .Range("A2").AutoFilter
        Next
    End With
    With Sheet2
        n = .Range("A6000").End(xlUp).Row
        .Range("B3").Value = WorksheetFunction.Sum(.Range("B4:B" & n))
        .Range("A3:M" & n).Borders.LineStyle = 1
1       For k = 4 To n
            If .Range("A" & k).Interior.ColorIndex = 43 Then
                .Range("A" & k).EntireRow.Delete
            End If
5       Next
    End With
    Sheet2.Select
    Application.ScreenUpdating = True
End Sub

P/S : Dòng từ 1-5 làm sao có thể bỏ đi? Em dùng AutoFilter mà vẫn bị dòng tiêu đề xuất hiện. các bác chỉ giùm chỗ sai (Bác ndu, Hyen17....) Cám ơn các bác nhiều
Thân
 

File đính kèm

Upvote 0
Cảm ơn bạn Minh Nguyệt rất nhiều. Bài mình post lên diễn đàn được bạn Minh Nguyệt trả lời rất nhiều lần, mình cảm ơn bạn lần nữa nhé.

Mình đã xem file của bạn Minh Nguyệt, nhưng mình không thấy cái dấu + phía trước mỗi Parent Doc đâu cả. Mình muốn cái dấu + nó nằm ngay mỗi Parent Doc (chứ không nằm ngoài lề như Group). Khi mình click vô dấu + nó sẽ biến thành dấu -, và hiển thị các Children Doc cùng với các dữ liệu tương ứng của Children Doc đó trên 1 hàng (nói chung là y chang như Group).

Nhu cầu thực tế của mình là muốn quản lý tài liệu của toàn công ty. Khi đưa file này cho mỗi phòng ban thì chỉ hiển thị Tên của Các Tài Liệu Cha, phòng ban nào quan tâm đến tài liệu nào thì click vào dấu cộng tương ứng phía trước, các tài liệu con và dữ kiện tương ứng của các tài liệu con mới bung ra. Vì thực tế số tài liệu đến hơn 300, người ta chỉ quan tâm đến phòng của họ thôi, nhìn và tìm trong 1 bảng 300 dòng thì rất bất tiện.

Vì mình muốn hổ trợ việc quản lý tài liệu cho sếp, đụng đến TL rất ngán rồi, nên file quản lý cần hiển thị gọn gàng.
Nhờ các bạn giúp đỡ. Mong!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn thử dùng 1 Name với Offset (vào Insert/Name/Define) kết hợp với Pivotable và conditional formatting thử xem. Yêu cầu này không cần code VBA. Bạn xem thử file đính kèm, nếu OK thì áp dụng, không OK thì có thể chúng ta bàn tiếp (dùng VBA thì có thể sử dụng TreeView để quản lý).
 

File đính kèm

Upvote 0
Bạn thử dùng 1 Name với Offset (vào Insert/Name/Define) kết hợp với Pivotable và conditional formatting thử xem. Yêu cầu này không cần code VBA. Bạn xem thử file đính kèm, nếu OK thì áp dụng, không OK thì có thể chúng ta bàn tiếp (dùng VBA thì có thể sử dụng TreeView để quản lý).

Em đã xem file của anh, nhưng vẫn không giống như em mô tả.
Ý em muốn cái dấu + nó nằm ngay mỗi Parent Doc (chứ không nằm ngoài lề như Group). Khi mình click vô dấu + nó sẽ biến thành dấu -, và hiển thị các Children Doc cùng với các dữ liệu tương ứng của Children Doc đó trên 1 hàng (nói chung là y chang như Group, chỉ khác cái dấu + không nằm ngoài lề thôi).

Nhu cầu thực tế của cty là muốn quản lý tài liệu của toàn công ty. Khi đưa file này cho mỗi phòng ban thì chỉ hiển thị Tên của Các Tài Liệu Cha, phòng ban nào quan tâm đến tài liệu nào thì click vào dấu cộng tương ứng phía trước, các tài liệu con và dữ kiện tương ứng của các tài liệu con mới bung ra. Vì thực tế số tài liệu đến hơn 300, người ta chỉ quan tâm đến phòng của họ thôi, nhìn và tìm trong 1 bảng 300 dòng thì rất bất tiện.

Bạn thử dùng 1 Name với Offset (vào Insert/Name/Define) kết hợp với Pivotable và conditional formatting thử xem. Yêu cầu này không cần code VBA. Bạn xem thử file đính kèm, nếu OK thì áp dụng, không OK thì có thể chúng ta bàn tiếp (dùng VBA thì có thể sử dụng TreeView để quản lý).

1. Em thử dùng Pivot Table rồi, nhưng có một số hạn chế là:
-Pivot Table không bảo toàn Hyperlink.
-Không hiển thị dữ liệu text (cái này em cũng có tìm hiểu cách giải quyết trên diễn đàn, anh có hướng dẫn set Subtotal None nhưng vẫn không được).
-Trong file của anh, dữ liệu text hiển thị được nhưng dấu + xuất hiện nhiều chỗ quá, người dùng end-user là hoàn toàn không biết lập trình, nên như vậy họ thấy rất rối.

2. Em có xem file QLBanHang của anh, có TreeView, nhưng em xem code thì tìm mãi không thấy chỗ nào viết cái mainTreeView mà anh gọi trong MainMenu hết.

3. Em thử dùng 1 Name với Offset (vào Insert/Name/Define) thì không thấy gì cả.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Cảm ơn bạn Minh Nguyệt rất nhiều. Bài mình post lên diễn đàn được bạn Minh Nguyệt trả lời rất nhiều lần, mình cảm ơn bạn lần nữa nhé.

Mình đã xem file của bạn Minh Nguyệt, nhưng mình không thấy cái dấu + phía trước mỗi Parent Doc đâu cả. Mình muốn cái dấu + nó nằm ngay mỗi Parent Doc (chứ không nằm ngoài lề như Group). Khi mình click vô dấu + nó sẽ biến thành dấu -, và hiển thị các Children Doc cùng với các dữ liệu tương ứng của Children Doc đó trên 1 hàng (nói chung là y chang như Group).

Nhu cầu thực tế của mình là muốn quản lý tài liệu của toàn công ty. Khi đưa file này cho mỗi phòng ban thì chỉ hiển thị Tên của Các Tài Liệu Cha, phòng ban nào quan tâm đến tài liệu nào thì click vào dấu cộng tương ứng phía trước, các tài liệu con và dữ kiện tương ứng của các tài liệu con mới bung ra. Vì thực tế số tài liệu đến hơn 300, người ta chỉ quan tâm đến phòng của họ thôi, nhìn và tìm trong 1 bảng 300 dòng thì rất bất tiện.

Vì mình muốn hổ trợ việc quản lý tài liệu cho sếp, đụng đến TL rất ngán rồi, nên file quản lý cần hiển thị gọn gàng.
Nhờ các bạn giúp đỡ. Mong!


Nếu bạn muốn thế thì xin gửi bạn file này, nó thực hiện theo đúng yêu cầu của bạn. Sau khi cập nhật đầy đủ số liệu và nhấn nút Group, bạn chuyển sang Sheet Sau Group sẽ thấy hàng dấu cộng ở cột A. Bạn kích đúp vào các dấu cộng đó xem điều gì xảy ra?
Chúc vui
Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nếu bạn muốn thế thì xin gửi bạn file này, nó thực hiện theo đúng yêu cầu của bạn. Sau khi cập nhật đầy đủ số liệu và nhấn nút Group, bạn chuyển sang Sheet Sau Group sẽ thấy hàng dấu cộng ở cột A. Bạn kích đúp vào các dấu cộng đó xem điều gì xảy ra?
Chúc vui
Thân
Mình cảm ơn bạn nhiều nhiều lắm }}}}}
 
Upvote 0
Phát hiện ra cái ngớ ngẩn ... trong code, đã chỉnh lý lại và post lên vị trí cũ
 
Upvote 0
Web KT

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

Back
Top Bottom