Excel versions

These files should all work in all recent versions of Excel, unless stated otherwise.

Blocked files problem

If you open a downloaded file but the VBA code doesn't work, here's how to fix that issue: Excel: Add-ins do not load

Excel add-ins and workbooks


RefTreeAnalyser add-in for Excel

Better formula precedents and dependents finding. Ever had to work out the logic of other people's Excel files? Ever had to untie the spaghetti-knots of a large Excel workbook's formulas? Then you know what a nightmare this can be!

Now there is RefTreeAnalyser!

Name Manager

Name Manager add-in for Excel

Name Manager An excellent utility to manage defined names in your workbooks.


Flexfind add-in for Excel

Flexfind eases searching and replacing throughout an entire workbook. Also enables you to search and replace strings in objects such as headers and footers, chart titles, buttons and many, many more.


Autosafe add-in for Excel (Build 151, 16 Jan 2023, downloaded: 60.673 times)

New in Autosafe: bugfix related to the Windows Explorer preview pane.

Autosafe tries to overcome some limitations of the built-in Autorecover feature. This utility creates copies of open workbooks at regular intervals in a separate (user-selectable) directory. It does not overwrite the master file(s), that is up to the user to do, using normal methods. As soon as a workbook is closed, the backup copy is deleted from the backup directory. If an abnormal termination of Excel occurs, the backup copies remain on disk, and Autosafe finds them the next time Excel is started and presents recovery options to the user.
Autosafe comes with an autoupdate function which checks for updates every week.
Includes the following languages: English, Dansk, Deutsch, Español, Français, Indonesia, Italiano, Nederlands, Norsk, Hrvatski, Slovenščina, Korean, Русский (Russian), Lithuanian and Hungarian.

Autosafe does not work on a Mac.


GoBack add-in for Excel (June 6, 2022, downloaded: 17.998 times) Version 1.0 build 013.

Sometimes one has to edit a large workbook, with many worksheets. This tiny utility keeps a record of the ranges you have visited and gives you the opportunity to return to previous selections using two hot keys: control-alt-p to go to a previous selection and control-alt-n to go to the next. It also creates a toolbar with a dropdown to select a previous selection and to disable/enable the utility.

Now updated with ribbon user interface.

Find My Cursor

Find out where the active cell is (6 Jan 2022, downloaded: 2.491 times) build 001.This tool is similar to the one below, except that it does not make any changes to your files, it simply helps you to find where the active cell is. Simply install the tool and press control+shift+H to get an animation which draws your attention to the right area 

Cell Sizer (June 15, 2023, downloaded: 786  times) Build 002.

A small and simple tool. It works like this:

  • Use arrow keys to change row heights and column widths
  • Hit control+z to undo

Follow Cell Pointer

FollowCellPointer add-in for Excel (14 Dec 2022, downloaded: 43.398 times) Version 1.0 build 012.

A small tool which follows your cell pointer by placing two arrows on top of your sheet pointing to the active cell. Does not change your formatting and has an option to preserve the undo stack.

Sheet Tools

SheetTools add-in for Excel (24 Jan 2022, downloaded: 10.505 times) Version 1.0 build 001.

This is the file that accompanies my article on how to build an Excel add-in

Table Tools

TableTools add-in for Excel (October 24, 2022, downloaded: 9.237 times) Version 1.0 build 015.

This is a small utility to make your life with tables a little easier. See this article

Slicers (29 Aug 2019, downloaded: 5.418 times).

This download contains files accompanying this article: Synchronising Slicers

Compare Two Tables

Compare2Tables add-in for Excel (Nov 15, 2021, downloaded: 5.035 times) Version 1.0 build 014.

A tool which compares two tables. The tool produces three new tables. Two tables containing the records which are in table 1 and not in table 2 and vice versa and one which lists all records which have been modified. Adds a button to the Data tab of the Excel ribbon.

Spreadsheet Model Template

Euda template for Excel

EUDA-template-EN.xlsm (8 Feb 2021, downloaded: 5.707 times)

EUDA-template-NL.xlsm (8 Feb 2021, downloaded: 2.938 times)

This template makes starting a new spreadsheet model easier as it already contains some functionality I think every model should have.

As discussed in this article

Validation dependent lists

DependentValidationUsingDA.xlsm (22 June 2020, downloaded: 4.934 times)

This demonstrates how to create dependent validation lists using dymanic array functions in Excel.

Close All Workbooks And Quit (01 Oct 2015, downloaded: 6.949 times) Version 1.0 build 001.

With the new MDI interface introduced with Excel 2013, closing all workbooks has become unnecessary difficult. This little addin adds a 'Quit Excel' button to your File menu that will close all open workbooks and quit Excel. It also features a Short-cut key: control+q

Header Footer (24 August 2018, downloaded: 18.921 times) Version 1.0 build 007.

Managing headers and footers in Excel can be a drag. This little tool helps you to change headers and footers in your files easily by means of a toolbar that shows dropdown/edit boxes in which you can type the header/footer codes directly or select them from the list of currently present header/footer codes in your file.

Setup Utility (Updated May 5, 2008, downloaded: 20.976 times)

If you have created a nice add-in (see this article how to do that), a setup utility is an easy way for your users to install your addin. This free utility just needs you to change 4 cells to roll your own setup file.

Update: Now automatically removes invalid addins from addin list.

An Excel Add-in that installs itself (Updated July 12, 2021, downloaded: 2.979 times)

Many users struggle with getting add-ins installed. In this article I show some VBA code that will ease that process: As soon as the user opens the add-in and enables macros, the add-in offers to install itself. This article contains an explanation.

Update An Addin

UpdateAnAddin.xls (Updated February 19, 2007, downloaded: 41.090 times)

If you have created a nice add-in (see this article how to do that), an updating mechanism is an easy way to ensure your users get any bugfixes you did automatically . This download demonstrates how you can implement this functionality in your addin.

Show Table On Userform (14 May 2008, downloaded: 18.344 times)

For a project I needed a quick way to display the content of an array to the user. I didn't want to use a worksheet, but opted for a userform. The data I wanted to show was contained in an array. So I figured I'd put a listbox on a userform and make sure the column widths of the listbox resize with the data I want shown. That proved far from easy... See this article on how it works.

Userform zoom demo

Userforms have a zoom property which allows you to make a form larger (or smaller) with very little code: (23 Dec 2021, downloaded: 2.104 times)

A modern-looking userform in VBA

This is the file accompanying this article: Creating modern-looking userforms in VBA

ModernUserformWithSwitch.xlsm (15 Feb 2022, downloaded: 4.091 times)

Two Listbox Drag Drop (June 10, 2020, downloaded: 4.379 times)

Demonstrates how to activate drag and drop between two listboxes on a Userform. See this article.

Fix Links to UDF (02 June 2008, downloaded: 11.811 times)

A demo file that handles #Name! errors for workbooks that use UDFs that reside in an add-in. See this article on how that works.

Quadratic Equation

QuadraticEquation.xlsx (02 June 2021, downloaded: 3.530 times)

A demo file showing how to use the LAMBDA function to create your own Quadratic Equation function in Excel. See this article on how that works.

Switching Office Channel (04 May 2020, downloaded: 2.458 times)

A set of four BAT files to aid in switching your Office 365 to a different Channel.

Office Script examples (23 Aug 2021, downloaded: 3.924 times)

An Office script that adds a Table of Contents to your Excel on-line file. See this article.

Keep the Queries and Connections task pane in check (Build 001, 26-05-2023, downloaded: 528 times)

This tool prevents the Queries and Connections task pane from becoming narrow next time you open Excel:

Queries and Connections taskpane in narrow state

Query Manager (Build 017, 23 September 2010, downloaded: 22.695 times)

This utility has been developed together with Dick Kusleika . It eases the editing of queries and Pivottable connections. One can:

1. Edit the SQL string and the connect string of queries and PivotCaches

2. Add parameters

3. Change the path to the data source

All in a single dialog.

Autosafe VBE (build 026, 6 Aug 2007, downloaded: 28.577 times)

This utility makes backup copies of VBA components to a user-defined directory. It keeps a user selectable number of copies of each component. It thus keeps a number of generations of your code as your work progresses, enabling you to return to a previous copy when things go wrong. Because it just exports the VBA components, it is unobtrusive because this process is relatively fast compared to saving your workbook or document. Excel and Word version included!!

Non linear Least Squares (13 Apr 2022, downloaded: 27.425 times) Fit complex functions like y=exp(a.x).sin(x) + b to data using Least squares

Copy VBA Project (Version 1.0, Build 011, 22 Jun 2016, downloaded: 16.336 times)

This utility enables you to copy the components from the VBAProject of workbook A to Workbook B


Export VBA Project (Version 1.0, Build 010, 28 Sep 2022, downloaded: 11.571 times)

This utility enables you to copy the components from a VBAProject to a single text file. If you like, the tool also adds the properties of all userforms and their controls to the textfile (one comma-separated row per control).  Very useful if you need to compare the VBA code of two Excel files. Use this handy tool to compare differences in the exported files: ExamDiff.

Github VBA Exporter

Github VBA Exporter add-in for Excel (Version 1.0, Build 011, Dec 14, 2022, downloaded: 2.767 times)

This utility enables you to export all components from a VBAProject to a user-selectable set of folders. Very useful if you need to upload the contents of a VBA project into Github. The tool generates a textfile which contains all properties of all userforms and their controls, and the ribbonX is exported too, which enables you to do diff's on your user interface.

Performance Class (Version 1.0, Build 001, 20 Aug 2014, downloaded: 8.853 times)

This example file demonstrates the use of a class module to measure performance of your VBA code. See A VBA performance class for an explanation.

Trusted Document Manager (Version 1.0, Build 006, 4 March 2024, downloaded: 8.495 times)

This little tool enables you to manage your list of trusted documents. Currently, Excel only allows you to either leave the list intact, or delete the entire list. This means all of your currently trusted documents become untrusted again so you have to enable macro's on all of them once again. The tool allows you to remove just one file, remove an entire folder or even an entire drive. Also it offers the possibility to remove files which no longer exist from the list.

Only available for Excel 2010 and up!

Object Lister (Version 1.0, Build 003, 1 October 2008, downloaded: 20.164 times) Lists objects, properties and methods of the selected object and enables you to quickly build code that uses many properties of an object. See the ObjectLister page for more information.

Tree View

An All-VBA (MSforms) treeview control that makes the common controls treeview obsolete. Works in all Office versions as of Office 2000, including 64 bits and MAC office.

The Excel download contains most of the documentation (on the tabs of the workbook), so I recommend you to at least download the Excel version.

Download the treeview sample workbook (build 026.5, 10 Jan 2023, downloaded 51.103 times)

Download the treeview sample Word document (build 026.5, 10 Jan 2023, downloaded 17.349 times)

Download the treeview sample Access database (build 026.5, 10 Jan 2023, downloaded 42.396 times)

See the accompanying article: An MSForms (all VBA) treeview

Wheel of Fortune

Wheel Of Fortune In Excel

A wheel of fortune, built entirely in Excel!

Excel wheel of fortune (29 September 2016, downloaded 12.366 times)

See the accompanying article: Creating a Wheel Of Fortune with Excel

Bingo (Lotto)

Wheel Of Fortune In Excel

An Excel file to play Bingo 20 Oct 2021, downloaded 1.990 times 


An Excel file to draw names (tombola) 29 Oct 2021, downloaded 1.840 times 

VBA driven circular references (11 February 2015, downloaded 6.291 times)

This file demonstrates the use of VBA to control circular reference calculations. See: Working with Circular references in Excel, Properly setting up circular references

AutoChrt (2 March 2015, downloaded: 27.547 times)

Automates the process of creating graphs from database-like datasets, where you need to chart various columns against each other in x-y scatter charts to determine relationships between them. It consists of a sheet where to copy the data into and a sheet that holds the chart and some spinner-buttons to control which data are charted.

Simple Inventory System (11 Oct 2016, downloaded: 16.415 times)

A simple inventory system built in Excel using simple formulas.

Moving Checkbox

MovingCheckbox.xlsm (29 Feb 2016, downloaded: 14.834 times)

A small demo file which contains a column in which a checkbox is automatically displayed tied to the underlying cell.

Chart An Equation (May 1, 2005, downloaded: 18.300 times)

Demonstrates a method to chart a mathematical equation using just defined names.
See this article for an explanation.

Control Handler (17 June 2005, downloaded: 15.450 times)

Demonstrates a method to handle the events for multiple controls on a worksheet using a single class module. See this article for an explanation.

Control Lister (10-7-2014, downloaded: 11.061 times)

Tool that lists all controls on your userforms on a worksheet. Includes code to rebuild the userforms from the table. Note: does not handle userforms with multipage controls very well!

Catch Paste Demo (17 Dec 2007, downloaded: 15.486 times)

Demonstrates how to intercept paste operations in a workbook to prevent users from wrecking your validation. The download contains two workbooks; one for Excel 2003 and earlier, the other for newer versions of Excel. See this article for an explanation.

Undo Handler (8 March 2006, downloaded: 19.765 times)

Demonstrates a method to enable the user to undo changes made by your VBA code. See this article for an explanation.

Watch Other Cell (18 September 2012, downloaded: 15.815 times)

This workbook simplifies looking at data in a sheet with a lot of columns. It shows the value of a cell on the same row in a column one can enter in a textbox. This way you can scroll all over the sheet and always (e.g.) have the value of a cell in column BE in view. Start the watcher by opening the file and using its entry in the Tools menu.

Get A Range (4 May 2006, downloaded: 19.761 times)

This workbook demonstrates a bug in the VBA Application.InputBox function as described here . The workbook also contains a userform and sample code to work around that bug.

Edit Open XML (5 September 2011, downloaded: 19.150 times)

Wouldn't it be useful to be able to edit the contents of an Office 2007 OpenXML file from within VBA? Well, now you can using this demo file. Find a full description here .

Modeless Form On Top (26 November 2012, downloaded: 10.967 times)

With Excel 2013, SDI was introduced as opposed to the MDI previous Excel versions have. This file demonstrates how to keep a modeless userform on top of the Excel window. Find a full description here .

Arg2Name (8 February 2001, downloaded: 23.516 times)

This workbook demonstrates a trick to pass (range) arguments to defined name formula's. See the Excel names page.

Command Bar IDs (May 19, 2022, downloaded: 30.166 times)

International versions of Office have the menu system in their local language. Also the Excel worksheet functions are (mostly) listed in local language. This complicates communication with the users with such a version. To aid in this process a utility has been devised that creates and shows a translation list of the Excel built-in command bars and controls and the Excel worksheet functions. This workbook can also list command bars of other Office software packages. It thus enables the international user who is using a different language version of Excel to quickly find translations for sequences of menu commands and function names.


Showing last 8 comments of 380 in total (Show All Comments):


Comment by: Jan Karel Pieterse (7-4-2022 20:17:00) deeplink to this comment

Hi TM,

I think you must make sure that the string contains valid decimal separator too. Not sure if the comma would work. Your code would return a string with the windows decimal separator due to the string conversion. Perhaps you need to convert explicitly using the Str function to get US syntax or using Cstr to get the local string

Comment by: TM (7-4-2022 21:11:00) deeplink to this comment

Hi Jan Karel, thanks for prompt post (as well as any of your interesting articles)

Think you might have misunderstood my post: I do Not plead for an intermediate comma "," as column withs separator. - On the contrary I'm referring to the need to insert the globally valid semicolon ";" between the individual column width entries (which of course have to be entered with a decimal point in VBA code). Hence `width1 & ";" & width2` instead of `width1 & ";" & width2` in the userform's Initialize event procedure.    

Comment by: Thomas (14-4-2022 23:41:00) deeplink to this comment


A couple of issues that I have been running into with your tools for a while:

Compare 2 Tables, on sheet:"Modified records", the query hangs with "ExternalData_1: Getting Data ...". If I open the PQ Editor , it tells me "Expression.SyntaxError: Invalid identifier."

TableTools: In the App_SheetChange handler, I am getting 1004 , Method Undo' of object '_Application' failed , when you Undo to try and collect the oldname, for the automatic update of all Queries and Datamodel.

Actually, in this instance (but there have been frequent other instances), the 2nd error has been triggered by running the 1st tool.

Since this has haunted me for several years, I am wondering whether there is something awry with my config.

Many thanks for your many Excel tools,

Comment by: Jan Karel Pieterse (15-4-2022 14:15:00) deeplink to this comment

Hi Thomas,

Can you perhaps share the file that causes the comparetwotables add-in to fail?

I must admit that I have not tested both tools being loaded in the same Excel instance.

Comment by: Ali Mohammadi (30-7-2022 09:05:00) deeplink to this comment

"I am getting a compile error in ExportVBA addin. It says the code needs to be updated to 64 bit version. I Checked the code. You added 32-64 bit declaration for some but not all. I changed codes as below. Although, after modifying API declaration, ExportVBA doesn't extract VBA codes.

Modified codes:

#If VBA7 Then
    Private Declare PtrSafe Function SHGetSpecialFolderLocation _
        Lib ""shell32"" (ByVal hWnd As LongPtr, ByVal nFolder As Long, ppidl As LongPtr) As LongPtr
    Private Declare PtrSafe Function SHGetPathFromIDList _
            Lib ""shell32"" Alias ""SHGetPathFromIDListA"" (ByVal Pidl As LongPtr, ByVal pszPath As String) As LongPtr
    Private Declare PtrSafe Function SetCurrentDirectoryA _
        Lib ""kernel32"" (ByVal lpPathName As String) As Long
    Private Declare PtrSafe Sub CoTaskMemFree Lib ""ole32"" (ByVal pvoid As LongPtr)
    Private Declare Function SHGetSpecialFolderLocation _
            Lib ""shell32"" (ByVal hWnd As Long,ByVal nFolder As Long, ppidl As Long) As Long
    Private Declare Function SHGetPathFromIDList _
            Lib ""shell32"" Alias ""SHGetPathFromIDListA"" (ByVal Pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SetCurrentDirectoryA _
            Lib ""kernel32"" (ByVal lpPathName As String) As Long
    Private Declare Sub CoTaskMemFree Lib ""ole32"" (ByVal pvoid As Long)
#End If


Comment by: Jan Karel Pieterse (1-8-2022 11:38:00) deeplink to this comment

Thank you Ali, I have uploaded an updated version today.

Comment by: Alex. M. (17-4-2024 20:18:00) deeplink to this comment

I downloaded the autosafe, enabled and configured in Excel 2003, but nothing happen when the time that I set run off.
Any info of what and where to check to make it work?

Comment by: Jan Karel Pieterse (17-4-2024 20:44:00) deeplink to this comment

Hi Alex,

Autosafe waits until you've been in active before doing a save. So to test, dry it to a short time, make a change to the file and then don't touch the system for that time. It should do its work.

Have a question, comment or suggestion? Then please use this form.

If your question is not directly related to this web page, but rather a more general "How do I do this" Excel question, then I advise you to ask your question here:

To post VBA code in your comment, use [VB] tags, like this: [VB]Code goes here[/VB].

Jan Karel Pieterse
Copyright 2024, All rights reserved.