Rama, one of our readers emailed this:
Hello Chandoo I am very new to vba. Help me with this
Q) I Have Many List boxes In That I need to Hide Few Of them Using Check box
Example:If I have List boxes Like A,A1,B,B1
If I Check On Check box A(Captioned As A) It Should show A,A1 List boxes. If I Unchecked it Should Hide A,A1 List boxes
In a similar manner if i checked Check box B .It Should show B,B1 List boxes. If I Unchecked it Should Hide B,B1 List boxes
Show Hide list boxes by using a check box
We can use check box and a bit of VBA to do this easily. First see this demo:

How to show or hide list boxes – Video
Although the concept behind this is very simple, explaining it in a post will make it very long. So I made a 10 minute video. Please watch it below:
[Watch this on our youtube page]
For more on this technique – see Customer Service Dashboard article.
To insert check boxes & list boxes see this tutorial.
Download example workbook
Click here to download the example workbook to understand this technique better. Examine the code in module 1 & 2 to know more.
How do you hide / show things using VBA?
Selectively hiding or showing is a great way to enhance your models, dashboards or reports. I use this technique very often. Most of my dashboards, products etc. contain interactive help that user can see or hide with a click. In background, I use few lines of VBA to do this magic.
What about you? Do you face similar situations? How do you handle them? Share your VBA tips & ideas using comments.
Are you new to VBA?
If so, you have hit a treasure chest. Start with our Excel VBA page and get the basics. Once you are ready to take a deep dive, go thru dozens of VBA / Macro Examples.
And when you want more, consider joining our VBA classes.

















6 Responses to “Make VBA String Comparisons Case In-sensitive [Quick Tip]”
Another way to test if Target.Value equal a string constant without regard to letter casing is to use the StrCmp function...
If StrComp("yes", Target.Value, vbTextCompare) = 0 Then
' Do something
End If
That's a cool way to compare. i just converted my values to strings and used the above code to compare. worked nicely
Thanks!
In case that option just needs to be used for a single comparison, you could use
If InStr(1, "yes", Target.Value, vbTextCompare) Then
'do something
End If
as well.
Nice tip, thanks! I never even thought to think there might be an easier way.
Regarding Chronology of VB in general, the Option Compare pragma appears at the very beginning of VB, way before classes and objects arrive (with VB6 - around 2000).
Today StrComp() and InStr() function offers a more local way to compare, fully object, thus more consistent with object programming (even if VB is still interpreted).
My only question here is : "what if you want to binary compare locally with re-entering functions or concurrency (with events) ?". This will lead to a real nightmare and probably a big nasty mess to debug.
By the way, congrats for you Millions/month visits 🙂
This is nice article.
I used these examples to help my understanding. Even Instr is similar to Find but it can be case sensitive and also case insensitive.
Hope the examples below help.
Public Sub CaseSensitive2()
If InStr(1, "Look in this string", "look", vbBinaryCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub CaseSensitive()
If InStr("Look in this string", "look") = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub NotCaseSensitive()
'doing alot of case insensitive searching and whatnot, you can put Option Compare Text
If InStr(1, "Look in this string", "look", vbTextCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub