Introduction

Introducing Burger Menu

Burger Menu - Burger Icon with Tooltip and Popup Menu

A Burger Menu is an Icon with 3 horizontal bars, that when clicked by the Mouse, renders a Menu of some description as a Drop-down list of selectable items. This Burger Menu is a Graphic Shape with a classic Burger-style Icon from the 365 Icons collection. It is linked via a Hyperlink technique that both allows a Hyperlink Tooltip and a Macro to be triggered. The Macro then runs a Popup Menu that renders a list of single items and a Sub Menu with nested Items to the Screen for the user to select

Update: I have performed a deep-dive excercise looking at the Hyperlink Tooltip and considering also the '=HYPERLINK()' Function used with the Rollover technique. You can read all about what I discovered (and what I didn't) Here · Hyperlink Tooltip (deep-dive)

Did you know that I have discovered many different ways to run macros following Rollovers? I have now discovered a perfect method for allowing a Proper Tooltip and a Rollover which is not used in this Project. If you want to read about these different techniques and purchase my latest Hyperlink Rollovers Project then you can do so Here · Hyperlink Rollovers for Excel







If you like this Project you may also enjoy


Hyperlink Rollovers ·  Pretty Buttons ·  Rollover Burger Buttons with Tooltips & Animations ·  Flat UI ·  Small Toggle Buttons ·  Menubar ·  Toggle Buttons ·  xlui ·  Burger Buttons ·  Popup Burger Buttons

Prerequisites

  • Excel 2016 (32bit or 64bit)
  • Basic to moderate Excel Skills and VBA skills to change the Code for different FaceId's in the Menu and to link your own Macros up to the Menu
  • Windows PC · NOT a Mac!
  • No support is provided for customization of this Software

Features

  • A nifty Excel Workbook with a Double Bubble patterned background and helpful links/advice
  • One default Burger Graphic Icon from the 365 Office Icons that can be changed to any Fill Colour. If you don't like the Burger Icon, change it to whatever you want
  • VBA Code demonstrates how to add in a Sub Menu anywhere in the List
  • VBA Code demonstrates how to pass in a String Parameter from the Menu into one of your own Subroutines
  • An example of navigating to a Sheet and to an external Website link or URL
  • Some default Face Id's to get you started and a link to an online Page where you can view lots of different Face Id's and their respective numbers

Installation

Open the BurgerMenu.xlsm File and test out the Burger Menu to see how it operates. Please read all of the info on the main Sheet and in this online documentation before you begin to edit and create your own Burger Menu or before turning to Support

Usage

BurgerMenu.xlsm


Test out the Burger Menu
Before you start editing and trying to create your own Burger Menu, take some time to look at the Example Burger Menu and see what it does. Hoever on it to see the Tooltip. Click on it to see the Drop-down list of Menu and Sub Menu items. Select an item to see a Message. On the right-hand side there is some useful information, together with a link to the nifty background (Double Bubble Pattern by: Tomislava Babić) and the online Help documentation

Editing the Burger Menu Shape (Selections and Formatting Panes)
The Burger Menu Shape is a Graphic object (called Menu - view in the Named Ranges box, top, LHS) which is an Icon from the Office 365 Icons set. In order to select it, you must first Unprotect the Sheet as Code protection is added to the Project by default to protect the interface (protects the Shapes from user interference, either on purpose or accidently) - do this from the Review Tab on the Ribbon. Right-click one the Burger Menu Icon. Now, use the Selection Pane on the Editing Group of the Home Tab of the Ribbon to make Selections easier and make viewing of the Names of any other objects easier. To format the Burger Menu Icon, you can hover near the Selection and use right-click Format and then change the formatting using the formatting Pane or use the options on the context Ribbon that will pop up for each object selection. I like to toggle on a Shape between the Format Pane and the Selection Pane. Here I have the Selection Pane visible and have selected the 'Menu' object:




The Fake Hyperlink used to create the Tooltip Hyperlink
The Fake Hyperlink used to create the Tooltip Hyperlink can be edited for your own needs. If you want to link to other Popup Menus you create then you can create the Tooltip again. Here is the Code, simply change anything wrapped within the '<>' tags and obviously, don't include the tags themselves!
' AddTooltip, used to add a Hyperlink and Tooltip to our Burger Menu Shape.  ran once and then this does not need to be ever ran again unless you want to change the Tooltip
Private Sub AddTooltip()
   ActiveSheet.Shapes("<Shape Name>").Parent.Hyperlinks.Add ActiveSheet.Shapes("<Shape Name>"), "", "<MacroName()>", ScreenTip:="Click for my super-cool menu"
End Sub


How to change the FaceId's
FaceId is another name for the small Icons that accompany items on the Command Bar. To change the FaceId you need to add the number (or Index) of the FaceId that you want. You can view FaceId's Here
So, in the Code you need to change them as per below:
   With Menu.Controls.Add(Type:=msoControlButton)
      .Caption = "Save Data"
      .FaceId = 3 ' < --- change the number here to the Face Id that you want.  this one is a Save Icon




Using your own Icons or Images instead of the standard FaceId's
You are not limited to the standard FaceID's using the Popup Burger Menu. You can use any Icon or image but they need to be standard size 16 pixels by 16 pixels. First of all, download or design your Icon. Next insert it into the Excel Sheet. Then add the Code below for one of the Menu Control Buttons - Menu.Controls.Add(Type:=msoControlButton) to Copy & Paste the image on-the-fly:
      .Style = msoButtonIconAndCaption 'icon and caption
      .Caption = "Own Icon"
      Sheet1.Shapes("Smiley").Copy   ' copy the custom icon
      .PasteFace                     ' paste the custom icon
      .OnAction = "'" & ThisWorkbook.Name & "'!" & "SaveData"


How to change the Linked Macro
So you won't want to use my Macros I am sure! You can link yours up easily using the Code as per below to the '.OnAction' memeber of the Command Bar Control - simply change the Macro Name to your own, the one wrapped within the '<>' tags and obviously, don't include the tags themselves!:
      .OnAction = "'" & ThisWorkbook.Name & "'!" & "<SaveData>"
   End With


How to create a New Sub Menu
To to create a New Sub Menu you just need to setup a new variable like this:
Dim SubMenu As CommandBarPopup
Then at the point where you want to insert your Sub Menu place the following Code:
Set SubMenu = Menu.Controls.Add(Type:=msoControlPopup)
Then add in your new Sub Menu item Code like this for example:
   With SubMenu
      .Caption = "Create Chart"

      With .Controls.Add(Type:=msoControlButton)
         .Caption = "Create a Pie Chart"
         .FaceId = 429
         .OnAction = "'" & ThisWorkbook.Name & "'!" & "CreatePie"
      End With

      With .Controls.Add(Type:=msoControlButton)
         .Caption = "Create Donut Chart"
         .FaceId = 449
         .OnAction = "'" & ThisWorkbook.Name & "'!" & "CreateDonut"
      End With
   End With


How to pass a Parameter back to your own separate Subroutines ran by the '.OnAction' member of the Command Bar Control
To pass a Parameter back to your own separate Subroutines ran by the '.OnAction' member of the Command Bar Control, you need to change the '.OnAction' member of the Command Bar Control, wrapping the String in double-quotes, like this to pass the word 'About' into the Information() Subroutine 'Foobar' String:
   With Menu.Controls.Add(Type:=msoControlButton)
      .Caption = "Information"
      .FaceId = 487
      .OnAction = "'Information ""About""'"
   End With
   
' Callback from the Popup Menu
' demonstrates how to use pass a variable from the Callback into a Subroutine
Public Sub Information(ByVal Foobar As String)
   MsgBox "The Callback Parameter: '" & Foobar & "' was passed into the Information Subroutine"
End Sub

Screen Shots

Burger Icon with Tooltip

Burger Icon Popup Menu

Editing the Buger Menu Graphic Icon

FAQ

Q. Can I use my own Icons instead of the standard FaceID's?
A. Yes, see the Usage Section for details on how to do this via VBA (Using your own Icons or Images instead of the standard FaceId's)


Videos

This is a video of the Burger Menu in action. In this demonstration, I demonstrate the Burger Menu and Sub Menu items that are linked to Macros. Music is 'Immortal - NEFFEX' · view the Burger Menu video on YouTube

Support

Support is 100% optional and I provide it for your convenience, so please be patient, polite and respectful

Support for my Software

  • Responding to questions or problems regarding the Software and its features
  • Fixing valid (replicated) bugs and reported issues for the VERSION I HAVE WRITTEN

Software support does not include

  • Customization and installation services
  • Support for third party software or ANY kind of development whatsoever

Before seeking support

  • Make sure your question is a valid Software Issue and not a customization request
  • Make sure you have read through the FAQ's, online documentation and any related video guides before asking support on how to accomplish a task
  • Ensure that you access to the VBOM is allowed and that Macros can run in Excel
  • Make sure to provide 'proof of purchase' and state the name / version of the Software that you are having issues with when requesting support by Email or via Facebook

How to get Support

Contact Mark Kubiszyn on the Email address provided when you purchased the Software, including the Order Number
Remember to be patient, if there has been an issue with your download, Mark will always respond within 48 hours and will Email you the File directly if neccessary. For other issues the response time may be considerably longer and I may choose to respond to specific questions only (as is my right), depending on what has been asked

Future Builds

Update: I have now found a method that no longer requires a Timer for firing for Selections following a hyperlink or a Rollover! I will be releasing this method with this Project for the next release

Bug Fixes

* There are currently no bugs identified

Changelog

You can find the version history in the Code Module for any Macro-enabled Software or read more information on the status of each release
- the latest Version including a description of any changes made is always shown first

12.10.2022 - (Version 1)

General release of Burger Menu