Introduction

Introducing Wild Oliva for Excel

Wild Oliva, an Animated Modal Dialog & Lightbox Class for Excel 2016 (32bit or 64bit, Version 16)

Need a replacement MsgBox or Dialog for Excel? Wild Oliva is a Class that allows you to create animated Dialogs for Excel. You can embed Skins, Icons and Animations into a very hidden Sheet and use them within the Class. Wild Oliva comes pre-loaded with 4 Google Fonts, 16 Skins and lots of Icons & Animations. Wild Oliva is a Modal Dialog that can be dismissed by a click anywhere on the Lightbox if required. This documentation details how to Base64 encode and embed objects so that you can build upon the base Dialog if you so wish - why not minify Wild Oliva to only include say 2 Skins and a handful of Animations and Icons?

Wild Oliva has a Titlebar, a Message area that fits around an Icon, a resizable SVG Icon and 3 Hover Buttons. Results of the Button press can be captured. The Dialog can be dismissed using the Excape {ESC} Key or clicking anywhere on the Lightbox (which can be transparent if required). Primarily created for use over light or white backgrounds, this Dialog looks equally as good on dark or black backgrounds as it does if you toggle the Dark/Light mode using the droplet at the top of this page to a Navy background. When 'Skinning' Wild Oliva, the Skin covers the Header and Footer area of the Dialog. You are purchasing version Wild Oliva v1.6 with the Windows 11 fix

Wild Oliva was built using Carbon v2.7
The Wild Oliva Skins are Base64 encoded patterns that can be downloaded from Subtlepatterns.com
Icons were downloaded from FontAwesome · (Free License)
The Wild Oliva File is Compressed and Cleaned using VBADecompiler.exe by Orlando
Code Inspections are maintained using Rubberduck
Base64 Image Files can be encoded using base64image.org
Animations using the Animation Library called Animate by Daniel Eden
Additional Generated Animations from Animista
Colour Name Finder can be used on colors.artyclick.com










If you love Wild Oliva, you may also like Avante-garde, Carbon or Zombie


Zingy
Avante-garde
Carbon
Zombie



Prerequisites

  • Microsoft Excel 2016 Version 16 (32bit or 64bit)
  • Basic to moderate Excel Skills and some basic IT/VBA skills to Base64 encode and embed additional objects
  • Windows PC · NOT a Mac!
  • No support is provided for customization of this Software

Features

  • Wild Oliva Skin and lots of Icons & Animations, all embedded into a single very hidden Sheet called 'Sheet999' with over 100 Example Demonstrations
  • Awesome Black (Dark) or White (Light) Lightbox effect that can also be used as an Overlay whilst completing some task. You can keep the Lightbox transparent if you want
  • 4 Google Fonts - you can create/modify the code for your own Fonts if you wish by changing the Font Names and Weightings in the Msg() function of the Class and their respective enumeration numbers. The Font Sizes can be tweaked for the Title, Message, Close Cross and Button Text
  • Fast loading so there is no lag or waiting for anything to render when using Wild Oliva
  • Multiple embedded, resizeable SVG Icons. Text will wrap around the Icon which can be positioned either left or right on the Dialog interface
  • Colour Themes that are applied throughout the various Dialog Objects ie. Highlighting Text, Hover Text on the Buttons, Icon Colour
  • 4 Modal Styles that change the look and feel of the Dialog in a subtle way, for example you can choose to have a thinner Border
  • Tooltips can be shown for the Buttons and the tiny Close Cross
  • 16 Different Skins so that you can give the Dialog an alternative look and feel
  • Awesome Animations to bring in your Dialog and exit your Dialog in style
  • Version 1.1 now lets you create dynamic content through the use of the GetResource() Class Method
  • Wild Oliva v1.2 can emulate Carbon, sleeker with a modified Class and more Icons
  • Wild Oliva v1.3 has a new Skin, Tex2Res4 and lots of brand new Colours, including a WetChalk range
  • Wild Oliva v1.4 has many New Ported Animations from my Zombie Software, including, Swing, HeadShake, Shake, BounceIn, BounceInDown, SkewOut, BounceOut, ZoomOutRight and 2 New faster Speeds, Coyote & RoadRun. Version 1.4 also has the ability to switch the Hover Button Colour to one of your choice as the default light Color does not fit well with some of the newer Pastel Shades
  • Wild Oliva v1.5 has many more new Skins, TwinkleTwinkle, BlackLozenge, BlackOrchid, Cloth, DebutDark, GreyWashedWall, StresedLinen, Tweed & Zwartevilt and more Icons, Sticky, TiredFace, WindowClose, ShareSquare, List, Image, Hourglass, Clipboard, Clock & BarChart






Installation

Right-click on the WildOliva.zip file and Extract all of the contents. Open WildOliva.xlsm and test all of the Examples. To configure or use Wild Oliva in your own Projects see the Usage Section


Usage

How to use Wild Oliva


Examples
On the 'Examples' Sheet you will find all of the Wild Oliva examples. The VBA Code used for all of these examples is in the 'mdExamples', Worksheet Code Module

Basic Dialog
To animate a Wild Oliva Dialog in and out, you can use the following code. For this example I have turned off the Lightbox by setting the Opacity to zero (0) and used the 'ThickBordered' style of Dialog. The animations used are 'BounceInLeft' (In) and 'BounceRight' (Out), the Colour Theme is 'BurntRed', the Google Font is 'Comfortaa' and the Icon displayed is 'Info' which is right-aligned by passing 'FloatRight' as the IconPosition Named Arg. and sized to 54 pixels. The Speeds used by the animations are 'BeepBeep' (second fastest) and 'MeepMeep' (fastest). The Skin is WildOliva (default), I have allowed the Dialog to be dismissed using the Excape {ESC} Key and I have resized the Dialog Width to 400 pixels
Public Sub Example1()
   Dim Dialog As WildOliva
   Set Dialog = New WildOliva
   With Dialog
      .Init Opacity:=0, Style:=ThickBordered, DismissByMouseClick:=True
      .Msg "Wild Oliva_v1", "This is my latest release of <span id=textthemelight>Wild Oliva</span>  This Dialog has a thick border with a Burnt Red colour theme", _
            BurntRed, Comfortaa, Info, 54, FloatRight, BounceInLeft, BounceRight, BeepBeep, MeepMeep, WildOlivia, "Okay, understood", , , True, 400
      .Kill
   End With
   Set Dialog = Nothing
End Sub

And this is the result of the code shown above. A single Button is shown to allow you to dismiss the Dialog, hoever you can use the tiny Close Cross or press the Escape {ESC} Key as well. When you hover over a Button or the tiny Close Cross the colour will change to the Theme being used and a Tooltip will be shown




Named Arguments
You can use any of the Named Arguments in any order. A full list is given below using the same code as previously shown
Public Sub Named_Arguments_Example()
   Dim Dialog As WildOliva
   Set Dialog = New WildOliva
   With Dialog
      
      .Init Opacity:=0, _
       FadeInSpeed:=0.03, _
       FadeInStep:=25.5, _
       Style:=ThickBordered, _
       DismissByMouseClick:=True, _
       BoxShadow:=""
      
      .Msg Title:="Wild Oliva_v1", _
            Text:="This is my latest release of <span id=textthemelight>Wild Oliva</span>  This Dialog has a thick border with a Burnt Red colour theme", _
            Theme:=BurntRed, _
            Font:=Comfortaa, _
            Icon:=Info, _
            IconSize:=54, _
            IconPosition:=FloatRight, _
            AnimationIn:=BounceInLeft, _
            AnimationOut:=BounceRight, _
            SpeedIn:=BeepBeep, _
            SpeedOut:=MeepMeep, _
            Skin:=WildOlivia, _
            CloseButtonText:="Okay, understood", _
            List:="", _
            GetInput:="", _
            EscapeKey:=True, _
            DialogWidth:=400, _
            CloseCross:=True, _
            Delay:=0.8
      
      .Kill Delay:=0.02, _
            FadeOutSpeed:=0.03, _
            FadeOutStep:=17
   
   End With
   Set Dialog = Nothing
End Sub



Wild Oliva Methods
Wild Oliva has 5 Methods, Init(), Msg(), Kill(), Pause() and SetLightboxColour(). Typically only 3 are used with a call to bring up a Dialog. If you use Init() and Kill() together without a call to Msg() then you are essentially just 'priming' the Dialog. This can be useful for a first run, when starting your PC for the first time and opening Excel, it will create the UserForm and Webbrowser Controls with any required code in the background, for example to allow the MouseDown() event on the Lightbox. I ususally add a simple instantiation of the Class object to prime Excel and then the Wild Oliva will render nicely, without lag or drawing issues

          
* Init() initiallises everything

* Msg() passes all of the Text for the Title, Message etc. and tells Wild Oliva how to look and behave, for example what Font to use, what Icon to display and the position to display it         

* Kill() psuedo destruction, fades out the Lightbox and prepares for destruction but doesn't actually terminate the Class

* Pause() is a simple timing function that you can use if you need, well a slight pause in time

* SetLightboxColour() is used to set the Lightbox colour inbetween Dialog transitions
  - for example you may present a Dialog, then want to dim the lights a while as you complete 'some task'
  - this Method allows you to switch a Lightbox, for example, from Light to Dark (White to Black)  


Wild Oliva Tags
Wild Oliva uses Span, Br and Hr Tags to explicitly style certain HTML elements, like the CSS Title Style. Instead of the default Title style which is called 'titlethemelight' you can add a span to the Text that you pass to 'Low Light' the Text and make it stand out less, but still keep it focused. Of course, you can go into the Code and amend these CSS Styles to anything that you like if you have a little Web Programming knowledge
          
.Msg "<span id=titlelowlight>Wild Oliva can Lowlight Stuff</span>"...

Here is a list of all of the Tags. Anything with the word 'theme' in it will be coloured in the same colour as the chosen Theme Colour, so passing a tag like <hr id=themeline> will give you a bright line in the Theme Colour. See the Examples for more information and the Code that does the work
span: titlethemelight (highlight, theme coloured title text)
span: textthemelight (highlight, theme coloured message text)
span: titlelowlight (lowlight coloured title text)
span: textlowlight (lowlight coloured message text)
span: titlegreylight (bespoke, demonstrating how you can add/amend in the CSS part of the VBA Code)
span: textgreylight (bespoke, demonstrating how you can add/amend in the CSS part of the VBA Code)

br: break (only here for retro-fit, ignore)
br: doublebreak (only here for retro-fit, ignore)
br: NEW use the default Br Tag and style it inside a DIV to adjust the Height - see the Examples

hr: line (full width 3d line)
hr: linewrap (wraps a full width 3d line around your Icon)
hr: themeline (full width coloured line)
hr: themelinewrap (wraps a coloured line around your Icon)


Create a Minimal Stripped down version of Wild Oliva
Wild Oliva has already been cleaned but if you only need say 4 Icons, 1 Skin and a couple of Animations then you can very easily create a minimal version of Wild Oliva. Follow these steps:
          
1. Make a Copy of Wild Oliva
2. Open Wild Oliva in the Code Editor and click into the 'mdEmbed' Code Module
3. Run the DeleteIconCustomProperties() Macro to remove all of the embedded Icons, Skins and Animations
4. Run the EmbedResources() and Select just the 4 Icons, 1 Skin and 2 Animations that you need to embed these into 'Sheet999'
5. Do a Debug->Compile VBAProject to identify an issues.  If there are any issues it will be the Enumeration Names just need commenting out
   - Scroll to the top of the WildOliva Class Code Module and comment out any Icon, Skin, Animation Names that you have Not embedded into 'Sheet999'



Create a New Skin .TXT File to Embed
Wild Oliva has 7 available Skins. They are in the Folder included with the Zip File download following purchase. If you want to add a different Skin then follow these steps:
          
1. Make a Copy of a the last Skin .TXT File, '115 Zwartevilt.txt' called: '116. New Skin.txt' - the 116 will be the next Skin Enumeration that we will add to the WildOliva Class
2. Go into the WildOliva Class Code Module and at the top where you see the 'Public Enum TSkin' declaration, add the additional line of code 'NewSkin = 116' where NewSkin is the Name that you want to call your Skin
3. Okay, now go and find a pattern for your new Skin - I use Subtlepatterns.com 
4. Download the pattern, pick the smallest size and then Base64 encode this pattern - I use base64image.org
5. Okay now open the '116. New Skin.txt' File in a Text Editor and replace anything after: '...data:image/gif;base64,' up until the closing Bracket ')' with the Base64 Contents.  Save the File and exit the Text Editor
6. Open Wild Oliva in the Code Editor and click into the 'mdEmbed' Code Module
7. Run the DeleteIconCustomProperties() Macro to remove all of the embedded Icons, Skins and Animations
8. Run the EmbedResources() and Select all of the Icons, Skins (including your new one) and Animations to embed these into 'Sheet999'
9. Copy one of the Examples and change the Skin Name from whatever it currently is to your new Skin Name (the one that you added for the extra line of code).  In my example I called mine 'NewSkin' so I changed mine to NewSkin
10. Run the Example to view your new Skin



Create a New Icon .TXT File to Embed
Wild Oliva has 24 available Icons. They are in the Folder included with the Zip File download following purchase. If you want to add a different Icon then follow these steps:
          
1. Make a Copy of a the last Icon .TXT File, '433 SVG BarChart.txt' called: '434 SVG New Icon.txt' - the 434 will be the next Icon Enumeration that we will add to the WildOliva Class
2. Go into the WildOliva Class Code Module and at the top where you see the 'Public Enum TIcon' declaration, add the additional line of code 'NewIcon = 434' where NewIcon is the Name that you want to call your Icon
3. Okay, now go and find a new Icon
4. Download the Icon - I use a Regular SVG downloaded in a full pack from FontAwesome
5. Okay now open the '434 SVG New Icon.txt' File in a Text Editor.  Open the downloaded Regular Font Awesome Icon in the same Text Editor
6. Replace anything in the '434 SVG New Icon.txt' File after '...<svg viewBox='0 0 512 512' width='64px' height='64px' fill='Black'><path d='' with the contents from between the 2 quotes for the 'path d=' in the Regular download SVG Font Awesome Icon File
   - in other words you are substituting anything for the 'path d=' in the Copy of the Icon .TXT File with the weird looking symbols in the New Icon File
7. Open Wild Oliva in the Code Editor and click into the 'mdEmbed' Code Module
8. Run the DeleteIconCustomProperties() Macro to remove all of the embedded Icons, Skins and Animations
9. Run the EmbedResources() and Select all of the Icons (including your new one), Skins and Animations to embed these into 'Sheet999'
9. Copy one of the Examples and change the Icon Name from whatever it currently is to your new Icon Name (the one that you added for the extra line of code).  In my example I called mine 'NewIcon' so I changed mine to NewIcon
10. Run the Example to view your new Icon

For Info: Animations are not covered here as I have to do a lot of work to integrate and test new Animations. Future versions may include more ported Animations

Screen Shots

Wild Oliva Dialog v1.5 Tired Face Icon

Wild Oliva Dialog v1.5 Bar Chart Icon

Wild Oliva Dialog v1.5 Clipboard Icon

Wild Oliva Dialog v1.5 List Icon

Wild Oliva Dialog v1.5 Sticky Icon

Thick Bordered Wild Oliva Dialog v1.3 in Rhino Colour Theme

Thick Bordered Wild Oliva Dialog v1.3 in WetYellowChalk Colour Theme

Thick Bordered Wild Oliva Dialog v1.3 in WetBlueChalk Colour Theme and Tex2Res4 Skin

Thick Bordered Wild Oliva Dialog in Burnt Red Colour Theme with a single Button and Info SVG Icon

Thick Bordered Wild Oliva Dialog in Burnt Red Colour Theme with a single Button and Info SVG Icon and a Lighter Skin

Standard Border Wild Oliva Dialog in Cobalt Colour Theme with a single Button and Info SVG Icon. This Dialog will be slightly smaller than the Thick Bordered Dialog and uses a Lighter Skin

Standard Border Wild Oliva Dialog using a Binding Dark Skin

Wild Oliva with 2 Icons in different Colours and Sizes (the Info Icon is 54px and the Bug Icon is 64px)

Wild Oliva v1.2 can emulate Carbon, sleeker with a modified Class and more Icons

Wild Oliva v1.2 using a GreySquares Skin and Mint Theme

ild Oliva v1.2 using a DarkMosiac Skin and Sun Theme



FAQ

* There are currently no FAQ for Wild Oliva




Wild Oliva Videos

This is a video of the Demo in Wild Oliva. Music Eating Concrete (Original Mix) by Reinier Zonneveld Get it Here · view this Wild Oliva video on YouTube

This is a video of the Demos from Demo2 until Demo4 from Version 1.1 until Version 1.3. Music is Horizon, by Mark Kubiszyn. Listen to it Here · view this Wild Oliva video on YouTube



Shorts & Reels

This is video #1 of Wild Oliva. Music is 'Firefly - Quincas Moreira' · view this Wild Oliva video on YouTube

This is video #2 of Wild Oliva. Music is 'Firefly - Quincas Moreira' · view this Wild Oliva 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

* More Ported Animations. I have a lot from Zombie that I may bring across

Bug Fixes

* There is a known issue when using Wild Oliva with multiple monitors that will be addressed in future builds

* On a Dark Background if you run specific animations you may get a white fuzziness around the perimiter of the Dialog
- Solution, don't run any animations that may cause this issue

* On a Dark Background when using the RoundCorner parameter in version 1.1 you will see a white part where the corner is rounded off
- Solution, don't use the RoundCorner parameter

Changelog

Read more information on the status of each release below. The latest Version including a description of any changes is shown first

16.12.2021 - (Version 1.6)

Fix for Windows 11 OS, for a Lightbox. The code detects the the OS Build Number >=22000 indicating Windows 11 or greater and then rounds the Window corners and adjusts the Windows Width & Height

10.11.2021 - (Version 1.5)

1. Added some new examples of dismissing the Dialog using a Mouse click on the Lightbox
2. Added new Skins, TwinkleTwinkle, BlackLozenge, BlackOrchid, Cloth, DebutDark, GreyWashedWall, StresedLinen, Tweed & Zwartevilt
3. Added new Icons, Sticky, TiredFace, WindowClose, ShareSquare, List, Image, Hourglass, Clipboard, Clock & BarChart

8.11.2021 - (Version 1.4)

1. Ported some more Animations from my Zombie Software
- New Animations In (Entrances) include, Swing, HeadShake, Shake, BounceIn, BounceInDown
- New Animations Out (Exits) include, SkewOut, BounceOut, ZoomOutRight
2. Added additional faster Speeds, Coyote (500ms) & RoadRun (400ms)
3. Added some more New Colours, PastelLightGreen, PastelGreen, PastelPink & PastelBlue
4. Added the ability to switch the Hover Button Colour to one of your choice as the default light Color does not fit well with some of the Pastel Shades. This Colour will apply to the Close Cross and both Buttons

4.11.2021 - (Version 1.3)

1. For brevity, moved the Transparent Colour to a Private Variable as this is only used by the Code for UserForm Transparency
2. Added more Long Colour Codes and their respective HTML Codes from my old Rhino Project (a dark schema used by Charts, free in my Archive to Download) to Wild Oliva, namely, Pickford Blue, Scooter and Rhino. Additional new Colours also include a Wet Chalk Range, built from a Swatch I found on the Internate, WetChalkYellow, WetChalkBlue etc.
3. Added an additional Skin called 'Tex2Res4'

31.10.2021 - (Version 1.2)

1. For brevity, replace any occurances of the Debug IModal statements in the WildOliva Class Code Module with the new WildOliva Class Name
2. Code change to restrict the Dialog Title Text. THe amount allowed is the (Dialog Width / 10) + 4, which will include the sufix "...". This was made more difficult as a user may use a span tag to restyle the Title
3. Code change to constrain the Dialog width to between 300px and 960px ie. if you pass 200 the Dialog will be set at a minimum of 300px and if you pass 1,200 the Dialog will be set at a maximum of 960px
4. Added the missing 32bit ShowCursor() API declaration to the dynamically created UserForm2 Code Module, Code to Hide the Cursor as we launch the Dialog
5. Added more Examples in a separate 'Examples1_2' Code Module, including restring the title length, more nice animation 'pairings' and speed demonstrations of the 4 avaialbale speeds
6. Code change to the CSS Style to add a new HR Tag: themelinewrap (wraps a coloured line around your Icon) and a recommended BR Tag change to use the default <br /> Tag but Style it within a DIV element to adjust the size - see the latest set of Examples for more information
7. Added extra Skins, DarkGeometric, renamed to Carbon, Grey Variations, renamed to GreySquares and DarkMosiac

30.10.2021 - (Version 1.1)

1. Added a RoundCorner parameter to the Msg() function to allow you to round the corners of the Dialog. This will not work on a Dark Background as you will see a white are where the corner has been rounded-off but has been included as part of a user request
2. Added some more examples including one of my favourite Animation combinations that I forgot about! WileCoyote and RoadRunner... Meep!Meep!
3. Amended some of the examples where Text was misleading or irrelevant for the demo of the Dialog
4. Exposed the GetResource() Function Globally so that you can create dynamic content ie. add another Icon in a different Colour
5. Split out the Demos, so any new examples for future versions will have their own Demo Hyperlink

28.10.2021 - (Version 1)

General release of Wild Oliva