Making Pane Settings Persist

by Allen Wyatt
(last updated April 23, 2017)

2

If Cindy freezes panes in a worksheet and then saves the workbook, the next time she opens that workbook the previously frozen panes no longer appear. Each time she opens the workbook, she needs to reset the panes. Cindy doesn't think it used to be this way in older versions of Excel and wonders if there is some setting she needs to make or wonders, perhaps, if Excel has changed how it handles panes. She wants to save the pane settings with the workbook so they persist from one usage to another.

The default behavior of the latest versions of Excel is that your pane settings should be persistent, just as Cindy remembers in older versions of Excel. If that is apparently not happening for you, there are a few things you can check:

  • See if someone else is updating or using the workbook and, while doing so, removing the panes.
  • Check to see if the workbook has a macro that runs automatically when starting that removes the panes. You might try looking for the text "FreezePanes" in the macros.)
  • See if the workbook is actually being saved in a non-Excel format, such as CSV or HTML. Other formats don't necessarily hold on to some settings, such as panes. (Save the file in XLS or XLSM format to see if that fixes the problem.)
  • Is the workbook, when open, being worked with using multiple windows? If so, and one of the windows doesn't use panes, the settings in the last-closed window are those that will "stick" in the workbook.
  • Check if the workbook is being shared with others. Some users report an oddity where pane settings may not save properly in shared workbooks.
  • Are filters being used in the workbook? If you apply filters, then set panes, and finally remove filters, the panes may also go away.

If none of those ring a bell with you, try starting with a brand new, blank workbook. Put some test data in it, freeze the panes, and then save it. Exit Excel and open the workbook again. If the panes are still there, then this is a good sign that the problem is with the other workbook only. In that case, it could be that the workbook is becoming corrupted (for some reason) and you may need to work on getting your data into a different workbook.

There are two other things you can do, if you desire. One is to simply save a custom view of your worksheet, with the panes in place. You should then be able to load the custom view at a later time and have the pane settings be present (along with many other settings) so that you can continue working with the workbook.

The other thing you could try is to create your own macro that sets the panes as you want them to appear. Here's an example:

Private Sub Workbook_Open()
    Sheets("Sheet1").Range("D4").Select
    ActiveWindow.FreezePanes = True
End Sub

This macro would be added to the ThisWorkbook module, and you'll need to change the cell reference (D4) and worksheet name (Sheet1) to reflect where you want the panes set. You could also, if desired, change the code to a "regular" macro that could be assigned to a shortcut key or the Quick Access Toolbar. That way you could use the macro to set similar panes in any worksheet, with the click of a button.

Sub SetPanes()
    ActiveSheet.Range("D4").Select
    ActiveWindow.FreezePanes = True
End Sub

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (604) applies to Microsoft Excel 2007, 2010, 2013, and 2016.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He  is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Repaginating Your Document in a Macro

When processing a document with a macro, you may need to have the macro repaginate the text. It's easy to do using the ...

Discover More

Updating a Field in a Text Box

If you put a field into a text box, you might be surprised to find that it doesn't update when you try to update all your ...

Discover More

Copying to Very Large Ranges

Using the mouse to select a large cell range can be frustratingly slow. If you want to make copying to a large range of cells ...

Discover More

Program Successfully in Excel! John Walkenbach's name is synonymous with excellence in deciphering complex technical topics. With this comprehensive guide, "Mr. Spreadsheet" shows how to maximize your Excel experience using professional spreadsheet application development tips from his own personal bookshelf. Check out Excel 2013 Power Programming with VBA today!

More ExcelTips (ribbon)

Error when Double-Clicking Workbook Files

When you double-click an Excel workbook on your system, Windows has to do a lot of behind-the-scenes work to start Excel and ...

Discover More

Drop-Down List Font Sizes

Excel has several features that cannot be customized. The font size in the drop-down lists is one of them. If you need make ...

Discover More

Stopping Help from Using Online Resources

Excel relies upon the Internet to grab help information. If you don't want Excel to seek help online, you can configure the ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 3 + 8?

2017-04-23 15:58:23

CACody

Christian,
I don't know of a way to freeze panes on a worksheet without selecting (activating) first. After all, FreezePanes is purely visual so there would be no reason to freeze the panes until it is to be viewed. Your comment about selecting Range("A1") is a good one, except you should select Range("A1") AFTER selecting (and freezing the panes) Range("D4") if you want the cursor to end up on A1. With your code, the cursor ends up on the last selected cell - D4 - and you'll still see the first 4 rows and columns in the active window.

Also note that Allen's code above in the Workbook_Open module --

Sheets("Sheet1").Range("D4").Select
ActiveWindow.FreezePanes = True

will only work if the workbook opens on Sheet1. As you know the workbook will open to whatever worksheet had the active window when last saved. So, if you were on Sheet2, saved and closed the file, then reopened it you would get a range select error code '1004'. You would need to separate the worksheet select and range select into two separate actions.

Sheets("Sheet1").Select
Range("D4").Select

If you want to freeze the panes of a worksheet during the Workbook_Open event without ending up on that worksheet, the following code will work. Basically, it sets the active worksheet during open to a variable (OpenSht), selects and freezes the panes for the desired worksheet (in this case Sheet2), then activates the original active worksheet. We use the Application.ScreenUpdating = False to perform this in the background.

Private Sub Workbook_Open()
Dim OpenSht As Worksheet

Application.ScreenUpdating = False

Set OpenSht = ActiveSheet

Sheets("Sheet2").Select
Range("D4").Select
ActiveWindow.FreezePanes = True
Range("A1").Select

OpenSht.Activate
Range("A1").Select

Application.ScreenUpdating = True
End Sub

Hope this helps.


2017-04-23 03:58:39

Christian Sommerhuber

I have a small comment on your solution: It may happen that the window is scrolled and - in your example - the row 4 and/or the column D is the first one currently displayed. If the real intent is to always show the first 4 rows and columns you should add an extra statement as shown below:

Sub SetPanes()
ActiveSheet.Range("A1").Select ' make sure the top cell is displayed
ActiveSheet.Range("D4").Select
ActiveWindow.FreezePanes = True
End Sub


By the way: is there an alternative of setting the freeze zone without activating the sheet?

Best regards,
Christian


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.