Tách sheet dựa vào validation theo từng nhân viên và thống kê báo cáo kết quả

Liên hệ QC

huonglien1901

GPE là ngôi nhà thứ 2 của tôi!!!
Tham gia
17/4/16
Bài viết
2,701
Được thích
2,433
Giới tính
Nam
Nghề nghiệp
Nhân viên kỹ thuật in ấn
Chào mọi người!

Em có vấn đề nhờ mọi người hỗ trợ.

Em muốn tách sheet dựa vào Validation theo từng nhân viên., Cột H1 có chứa Validation.

Validation này chứa tất cả các nhân viên,

Khi chọn 01 nhân viên thì tách sheet dựa vào nhân viên đó.

Chọn tất cả thì tách tất cả các nhân viên.

Sheet TONGHOP tổng hợp tất cả các nhân viên đi trong 01 tháng bao nhiêu KM.

Em cảm ơn mọi người nhiều!
 

File đính kèm

  • KT.xlsx
    16.6 KB · Đọc: 6
bạn có thể demo 1 sheet chứa kết quả mong muốn thì sẽ dễ hơn cho mọi người đọc và giúp bạn đó!
 
Upvote 0
Mình giúp bạn code phần Tách sheet, bạn thử xem sao
Mã:
Option Explicit

Sub TachSheet()

Dim wb As Workbook
Set wb = Application.ThisWorkbook
Dim wsData As Worksheet
Set wsData = wb.Worksheets("Data")

Dim tenNV As String
tenNV = wsData.Range("H1").Value2

Dim LR As Long, i As Long
LR = wsData.Range("I" & wsData.Rows.Count).End(xlUp).Row
Dim arrTenNV As Variant
arrTenNV = wsData.Range("I6", "I" & LR).Value2

Dim TatCa As String
TatCa = wsData.Range("I5").Value2

If tenNV <> TatCa Then
    Call CCopySheet(wsData, tenNV)
ElseIf tenNV = TatCa Then
    For i = 1 To UBound(arrTenNV)
        tenNV = arrTenNV(i, 1)
        wsData.Range("H1").Value2 = tenNV
        Call CCopySheet(wsData, tenNV)
    Next
End If

End Sub


----------------------------------------------------------
Sub CCopySheet(sh As Worksheet, sheetName As String)

Dim newSheet As Worksheet
Dim xSheet As Worksheet

For Each xSheet In ThisWorkbook.Worksheets
    If xSheet.Name = sheetName Then
        Application.DisplayAlerts = False
        xSheet.Delete
        Application.DisplayAlerts = True
    End If
Next

sh.Copy after:=Worksheets(Worksheets.Count)
Set newSheet = ThisWorkbook.ActiveSheet
newSheet.Name = sheetName

End Sub
 
Upvote 0
Web KT
Back
Top Bottom