VBA lọc lấy mảng giá trị sang sheets khác trên cùng 1 file excel

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
407
Thích
23
#1
Xin chào mọi người trên GPE,
Nhờ mọi người giúp e vấn đề như sau:
Em có 1 bảng theo dõi các hợp đồng tại sheets "TheoDoi"
Khi hợp đồng đó hoàn thành thì ta chọn "x" vào cột trạng thái ở sheets "TheoDoi" thì dòng chứa thông tin HĐ đó sẽ được chuyển sang sheets "DM Hop Dong", đồng thời bên sheets "TheoDoi" cột đó sẽ được ẩn đi.
Các hợp đồng hoàn thiện được sắp xếp theo thứ tự là thằng nào tích "x" vào trước sẽ được copy sang trước, thằng tiếp sẽ đc copy xuống dòng dưới. 2 cột đường link đc cóp sang cũng mở được tại sheets "DM Hop Dong"
Mọi người xem file e đính kèm phía dưới để rõ hơn a.
 

File đính kèm

be09

Thành viên gạo cội
Tham gia ngày
9 Tháng tư 2011
Bài viết
5,845
Thích
5,726
Tuổi
61
#2
Xin chào mọi người trên GPE,
Nhờ mọi người giúp e vấn đề như sau:
Em có 1 bảng theo dõi các hợp đồng tại sheets "TheoDoi"
Khi hợp đồng đó hoàn thành thì ta chọn "x" vào cột trạng thái ở sheets "TheoDoi" thì dòng chứa thông tin HĐ đó sẽ được chuyển sang sheets "DM Hop Dong", đồng thời bên sheets "TheoDoi" cột đó sẽ được ẩn đi.
Các hợp đồng hoàn thiện được sắp xếp theo thứ tự là thằng nào tích "x" vào trước sẽ được copy sang trước, thằng tiếp sẽ đc copy xuống dòng dưới. 2 cột đường link đc cóp sang cũng mở được tại sheets "DM Hop Dong"
Mọi người xem file e đính kèm phía dưới để rõ hơn a.
Góp ý cho bạn:
1/ Nên gộp nội dung 3 sheet vào 1 sheet để theo dõi chung để thuận tiện trong việc tổng hợp. Cột tình trạng nên là xong hoặc chưa xong.
2/ Thêm code tách sheet thì sẽ có ngay kết quả sheet DM HĐ Thue Nha và sheet DM Hop Dong và có thể tách sheet xong hoặc chưa xong.

Nói chung, nếu theo dõi tất tần tật trong 1 sheet thì khi cần tách cái gì thì sẽ quá dễ dàng.
 

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
407
Thích
23
#3
Góp ý cho bạn:
1/ Nên gộp nội dung 3 sheet vào 1 sheet để theo dõi chung để thuận tiện trong việc tổng hợp. Cột tình trạng nên là xong hoặc chưa xong.
2/ Thêm code tách sheet thì sẽ có ngay kết quả sheet DM HĐ Thue Nha và sheet DM Hop Dong và có thể tách sheet xong hoặc chưa xong.

Nói chung, nếu theo dõi tất tần tật trong 1 sheet thì khi cần tách cái gì thì sẽ quá dễ dàng.
Rất cảm ơn bác đã góp ý.
Nếu e vẫn muốn như trên thì có thể xử lý được ko bác ơi :D :D
 

HieuCD

Thành viên gạo cội
Tham gia ngày
14 Tháng chín 2010
Bài viết
4,461
Thích
6,249
#6
Xin chào mọi người trên GPE,
Nhờ mọi người giúp e vấn đề như sau:
Em có 1 bảng theo dõi các hợp đồng tại sheets "TheoDoi"
Khi hợp đồng đó hoàn thành thì ta chọn "x" vào cột trạng thái ở sheets "TheoDoi" thì dòng chứa thông tin HĐ đó sẽ được chuyển sang sheets "DM Hop Dong", đồng thời bên sheets "TheoDoi" cột đó sẽ được ẩn đi.
Các hợp đồng hoàn thiện được sắp xếp theo thứ tự là thằng nào tích "x" vào trước sẽ được copy sang trước, thằng tiếp sẽ đc copy xuống dòng dưới. 2 cột đường link đc cóp sang cũng mở được tại sheets "DM Hop Dong"
Mọi người xem file e đính kèm phía dưới để rõ hơn a.
Đem qua trùng dòng ráng chịu
 

File đính kèm

be09

Thành viên gạo cội
Tham gia ngày
9 Tháng tư 2011
Bài viết
5,845
Thích
5,726
Tuổi
61
#7
Bác có thể thể hiện bằng file e gửi ở trên đc ko???
File này chỉ làm thử cho bạn tham khảo (chưa có code):
1/ Tôi gộp 3 sheet vào 1 sheet TheoDoi để làm mẫu để bạn tham khảo, nếu thống nhất nội dung và cách làm này tôi sẽ gán cho bạn 2 nút:
- Nút 1: Khi nhấn vào nó sẽ tách ra 4 sheet (HD_MB, HD_KT, Xong, Chưa X).
- Nút 2: Khi nhấn vào nó sẽ Tạo ra kết quả tổng hợp bằng PivotTable.
2/ Sheet Tong_Hop tôi sử dụng PivotTable.
 

File đính kèm

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
407
Thích
23
#9
File này chỉ làm thử cho bạn tham khảo (chưa có code):
1/ Tôi gộp 3 sheet vào 1 sheet TheoDoi để làm mẫu để bạn tham khảo, nếu thống nhất nội dung và cách làm này tôi sẽ gán cho bạn 2 nút:
- Nút 1: Khi nhấn vào nó sẽ tách ra 4 sheet (HD_MB, HD_KT, Xong, Chưa X).
- Nút 2: Khi nhấn vào nó sẽ Tạo ra kết quả tổng hợp bằng PivotTable.
2/ Sheet Tong_Hop tôi sử dụng PivotTable.
Hay quá đây là cách nghĩ mới, quản lý hoàn toàn khác
Nếu e có thêm mục quản lý hạn HĐ thì cũng có thể quản lý được đúng không bác?
 

be09

Thành viên gạo cội
Tham gia ngày
9 Tháng tư 2011
Bài viết
5,845
Thích
5,726
Tuổi
61
#10
Hay quá đây là cách nghĩ mới, quản lý hoàn toàn khác
Nếu e có thêm mục quản lý hạn HĐ thì cũng có thể quản lý được đúng không bác?
Thì bạn muốn thêm cột nào là cái gì thì cứ thêm vào, nhưng cần lưu ý sắp xếp nội dung công việc theo trình tự từ trái sang phải, công việc trước thì ghi trước, công việc sau thì ghi sau để cho dễ theo dõi và dễ quản lý.

Bạn nên suy nghĩ thế này: Coi cái sheet Theodoi như cái nhà kho, cần cái gì vào công việc nào thì cứ vào kho lấy cái đó ra.
 

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
407
Thích
23
#11
Thì bạn muốn thêm cột nào là cái gì thì cứ thêm vào, nhưng cần lưu ý sắp xếp nội dung công việc theo trình tự từ trái sang phải, công việc trước thì ghi trước, công việc sau thì ghi sau để cho dễ theo dõi và dễ quản lý.

Bạn nên suy nghĩ thế này: Coi cái sheet Theodoi như cái nhà kho, cần cái gì vào công việc nào thì cứ vào kho lấy cái đó ra.
Bác giúp e thêm 2 cái nút gì để e thử thêm dữ liệu vào chạy xem có oke ko?
 

HieuCD

Thành viên gạo cội
Tham gia ngày
14 Tháng chín 2010
Bài viết
4,461
Thích
6,249
#12
Bác ơi các link khi chuyển sang sheet "DM Hop Dong" không mở được
Em muốn khi chuyển sang sheet "DM Hop Dong" thì link HĐ khi click vào vẫn mở ra đc file ta link
Cảm ơn bác
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim eR As Long, iR As Long
  eR = Range("E" & Rows.Count).End(xlUp).Row
  If Not Intersect(Target, Range("I4:I" & eR)) Is Nothing Then
    If Target.Count = 1 Then
      If LCase(Target.Value) = "x" Then
        iR = Target.Row
        
        With Sheets("DM Hop Dong")
          eR = .Range("E" & Rows.Count).End(xlUp).Row + 1
          .Cells(eR, 1).Value = eR - 3
          .Range("B" & eR).Resize(, 4).Value = Sheets("TheoDoi").Range("B" & iR).Resize(, 4).Value
          .Range("L" & eR).Value = Sheets("TheoDoi").Range("H" & iR).Value
          .Range("M" & eR).Resize(, 2).Value = Sheets("TheoDoi").Range("F" & iR).Resize(, 2).Value
          Sheets("TheoDoi").Range("J" & iR).Resize(, 2).Copy Destination:=.Range("I" & eR)
         End With
        Target.ClearContents
      End If
    End If
  End If
End Sub
 
Top