Privot table nâng cao

Liên hệ QC

thanguyenchien

Thành viên mới
Tham gia
24/8/07
Bài viết
19
Được thích
43
các bác cho hỏi là, em sử dụng dữ liệu nội tại ở sheet1 và sử dụng PT để trình bay báo cáo trên sheet2. Em sử dụng chức năng bảo vệ Protect sheet2 để NSD không thay đổi được cách trình bày của báo cáo. Tuy nhiên 1 vấn để đặt ra là không thể refresh được khi em cập nhật thêm dữ liệu vào sheet1. Các bác cho hỏi có cách nào để bảo vệ PT mà vẫn cập nhật được không. (em đã có sử dụng refresh on open nhưng không tiên lắm do phải đsóng vào mở ra) nhiều lần. Nhờ các bác chỉ giùm.
 
Bạn thử dùng cách đặt tên động Dynamic Range

Nếu bạn có dữ liệu 10 cột (hàng không hạn chế) bắt đầu từ ô A1 thì trong Insert> Name>Define
Name = Database

Refer To = OFFSET(Khovb!$A$1,0,0,COUNTA(Khovb!$A:$A),10)

Lúc chọn dữ liệu ở Pivot Table thì dán tên step 2 of 3, Range Database vào!

Còn để bảo vệ cách trình bày, đừng Protect sheet, mà dùng 1 mảco như sau:
Mã:
Sub RestrictPivotTable()
Dim pf As PivotField
With ActiveSheet.PivotTables(1)
  .EnableWizard = False
  .EnableDrilldown = False
  .EnableFieldList = False   'Excel 2002+
  .EnableFieldDialog = False
  [B][COLOR="Red"][SIZE="4"].PivotCache.EnableRefresh = True[/SIZE][/COLOR][/B]
  For Each pf In .PivotFields
    With pf
      .DragToPage = False
      .DragToRow = False
      .DragToColumn = False
      .DragToData = False
      .DragToHide = False
    End With
  Next pf
End With
End Sub

Tham khảo thêm http://www.contextures.com/xlPivot12.html
Trang 1-12


Chúc bạn thành công!
 

File đính kèm

  • DynamicPivot.rar
    24.3 KB · Đọc: 140
cảm ơn bác learnExcel nhiều. Rất mong có ngày hậu tạ
 
Chỉnh sửa lần cuối bởi điều hành viên:
e vẫn còn thắc mắc 1 chút là: bây giờ e muồn bảo vệ sheet2: không cho thay đổi trình bày PT và không cho nhập dữ liệu vùng ngoài PT (hay ẩn các ô công thức vùng ngoài PT) mà vẫn có thể refresh được PT. Vậy có cách nào không, mong báo chỉ giáo thêm
 
Theo tôi thì không!
 
Web KT
Back
Top Bottom