Code VBA cho Pivot (1 người xem)

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

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

lmtuyen

Thành viên chính thức
Tham gia
14/3/09
Bài viết
71
Được thích
12
Dear Anh/Chị
Mình có file đính theo dõi SL của SX, trong đó ờ Sheet" Main" mình có 1 nút Cmd " PO Finished", khi click vào thì báo lỗi, đoạn code bên dưới,Anh/Chị xem giúp dòng màu đỏ nhé.

Private Sub cmd4_Click()
'PO Finshed

Application.ScreenUpdating = False
Sheets("PO Finished").Visible = True
Sheets("PO Finished").Select
ActiveWorkbook.RefreshAll


With Sheet7.PivotTables("PivotTable1").PivotFields("Date")
cnt = .PivotItems.Count
.PivotItems(cnt).Visible = True


For i = 1 To cnt
If Val(.PivotItems(i)) <> [A1] Then
.PivotItems(i).Visible = False
Else
.PivotItems(i).Visible = True
End If
Next
End With

Application.ScreenUpdating = True
End Sub
 
Dear Anh/Chị
Mình có file đính theo dõi SL của SX, trong đó ờ Sheet" Main" mình có 1 nút Cmd " PO Finished", khi click vào thì báo lỗi, đoạn code bên dưới,Anh/Chị xem giúp dòng màu đỏ nhé.
..
For i = 1 To cnt
If Val(.PivotItems(i)) <> [A1] Then
.PivotItems(i).Visible = False
Else
.PivotItems(i).Visible = True
End If
Next
Items là ngày tháng nên bạn phải chuyển nó sang dạng ngày tháng, và khai báo biến tường minh.
Code sửa lại như sau:
[gpecode=vb]
Private Sub cmd4_Click()
'PO Finshed
Dim Cnt As Integer, i As Integer
Application.ScreenUpdating = False
Sheets("PO Finished").Visible = True
Sheets("PO Finished").Select
'ActiveWorkbook.RefreshAll
On Error Resume Next
With Sheet7.PivotTables("PivotTable1").PivotFields("Date")
.PivotCache.Refresh
Cnt = .PivotItems.Count
.PivotItems(Cnt).Visible = True
For i = 1 To Cnt
.PivotItems(i).Visible = (CDate(.PivotItems(i).Value) = Sheet7.[A1])
Next i
End With
Application.ScreenUpdating = True
End Sub
[/gpecode]
 

File đính kèm

Upvote 0
Thanks bạn nhiều nhé, đúng yêu cầu của mình rồi, bạn có thể giúp mình thêm thế này:
mình muốn lọc từ ngày---đến...., ví dụ lấy từ cell "A1" và "B1" bạn giúp nhé
 
Upvote 0
Thanks bạn nhiều nhé, đúng yêu cầu của mình rồi, bạn có thể giúp mình thêm thế này:
mình muốn lọc từ ngày---đến...., ví dụ lấy từ cell "A1" và "B1" bạn giúp nhé
Nó chỉ nằm trong lệnh này thôi:
[gpecode=vb]
For i = 1 To Cnt
.PivotItems(i).Visible = (CDate(.PivotItems(i).Value) >= Sheet7.[A1] And CDate(.PivotItems(i).Value) <= Sheet7.[B1])
Next i
[/gpecode]
 
Upvote 0

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

Back
Top Bottom