XL97: Show Pages Does Not Use Sheet.xlt for Worksheets

ID: Q165238

The information in this article applies to:

SYMPTOMS

If you use the Show Pages shortcut menu command to create separate worksheets for all the items for a page field in a PivotTable, the worksheets that are created are not based on any template files that may be on the computer.

NOTE: In Microsoft Excel 7.0, if the template Sheet.xlt is in the Xlstart folder, the Show Pages command uses the template as the basis for new worksheets.

RESOLUTION

To use an existing worksheet template when you use the Show Pages menu item to create new worksheets, create and run a macro that simulates the Show Pages functionality. See the "More Information" section in this article for a sample macro that simulates the command.

NOTE: There is no way to manually force the Show Pages command to create new worksheets using an existing worksheet template.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

The following example demonstrates how to create a sample worksheet template, a PivotTable, and a Visual Basic for Applications macro that simulates the Show Pages command.

Creating the Worksheet Template

To create a sample worksheet template, use the following steps:

 1. Close and save any open workbooks, and then create a new workbook.

 2. Delete all but one worksheet in the workbook.

 3. On the File menu, click Page Setup.

 4. In the Page Setup dialog box, click the Header/Footer tab. In the
    Header/Footer tab, click Custom Header.

 5. In the Left Section box type "this is a test" (without the quotation
    marks), and then click OK. Click OK in the Page Setup dialog box.

 6. On the File menu, click Save.

 7. In the Save As dialog box, click Template in the Save As Type list.

 8. In the File Name box, type "Sheet" (without the quotation marks).

 9. In the Save In list, locate and click the Xlstart folder to select it.
    This folder is located in the following default location:

       Program Files\Microsoft Office\Office\Xlstart

10. Click Save.

11. On the File menu, click Close.

Creating the PivotTable

To create a sample PivotTable, use the following steps:

1. Create a new workbook and then enter the following data in Sheet1:

   A1: Name    B1: Amount   C1: Area
   A2: Bob     B2: 1        C2: e
   A3: Sue     B3: 1        C3: w
   A4: Sue     B4: 1        C4: e
   A5: Bob     B5: 1        C5: n
   A6: Tom     B6: 1        C6: e
   A7: Sue     B7: 1        C7: n
   A8: Tom     B8: 1        C8: n
   A9: Bob     B9: 1        C9: w

2. Click cell A1. Then, click PivotTable Report on the Data menu.

3. In step 1 of the PivotTable Wizard, click Next.

4. In step 2 of the PivotTable Wizard, verify that the specified range is

   $A$1:$C$9, and then click Next.

5. In step 3 of the PivotTable Wizard, drag the Name button onto the ROW
   field, drag the Amount button onto the DATA field, and then drag the
   Area button onto the PAGE field.

6. Click Finish.

A PivotTable is created in a new worksheet in the workbook.

Sample Visual Basic for Applications Macro

To create the macro that simulates the Show Pages command, use the following steps:

1. On the Tools menu, point to Macro, and then click Visual Basic Editor.

   Or, press ALT+F11.

2. On the Insert menu, click Module.

3. Enter the following code in the module:

      Sub Show_Pages()

          Dim mysheet As String

          ' Reduce the amount of screen flickering.
          Application.ScreenUpdating = False

          ' Set the name of the worksheet with the PivotTable.
          mysheet = ActiveSheet.Name

          With Sheets(mysheet).PivotTables(1)

              ' Loop through all items in the "Area" page field.
              For Each x In .PageFields("Area").PivotItems

                  .PivotFields("Area").CurrentPage = x.Name

                  ' Insert a new worksheet using Sheet.xlt in the Xlstart
                  ' folder.
                  Sheets.Add Type:="Worksheet"
                  ActiveSheet.Name = x.Name

                  ' Activate the worksheet that contains the PivotTable.
                  Sheets(mysheet).Select

                  ' Select the PivotTable and copy it.
                  .PivotSelect "", xlDataAndLabel
                  Selection.Copy

                  ' Activate the worksheet with the name from the item
                  ' in the page field and paste the PivotTable with this
                  ' page field item displayed.
                  Sheets(x.Name).Select
                  ActiveSheet.Paste

              Next
          End With

      End Sub

4. On the File menu, click "Close and Return to Microsoft Excel."

5. Save your workbook.

Running the Macro

To use the sample macro, use the following steps:

1. Switch to the worksheet that contains the PivotTable.

2. Run the Show_Pages macro.

   For the sample PivotTable that you created, the macro creates three new
   worksheets. Each worksheet uses a name that corresponds to an item in
   the Area page field and contains a view of the PivotTable that is set to
   the corresponding page field value.

3. Switch to any of the newly created worksheets.

4. On the File menu, click Page Setup.

5. Click the Header/Footer tab in the Page Setup dialog box.

Note that the header is the same header that is specified in Sheet.xlt.

REFERENCES

For more information about PivotTable page fields, click the Index tab in Microsoft Excel Help, type the following text

   Page fields

and then double-click the selected text to go to the "Work with PivotTable page fields" topic.

Additional query words: XL97

Keywords          : kbprg kbdta KbVBA kbhowto 
Version           : WINDOWS:97
Platform          : WINDOWS

Last Reviewed: December 9, 1998