AllExperts > Excel 
Search      
Excel
Volunteer
Answers to thousands of questions
 Home · More Excel Questions · Answer Library  · Encyclopedia ·
More Excel Answers
Question Library

Ask a question about Excel
Volunteer
Experts of the Month
Expert Login

Awards

About Us
Tell friends
Link to Us
Disclaimer

 
 
 
 
About Tom Ogilvy
Expertise
Worked with the program for many years - provided assistance on MS Excel Newsgroups since 1997. Have received the Microsoft MVP award annually since 1999. I don't answer questions on using Excel in a browser Since I have no way to test this. Prefer not to answer charting questions. I consider myself to be particularly knowledgeable about using VBA internal to Excel but have no problems with formulas and pivot tables either.

Experience
Have Used Excel for 15 - 20 years. Answered in excess of 70,000 Excel related questions in MS Excel newsgroups. Unless obvious, please specify whether you want a worksheet function or macro/VBA solution.

Education/Credentials
BS General Engineering (concentration in Industrial Engineering) MS Operations Research Systems Analysis

 
   

You are here:  Experts > Computing/Technology > Microsoft Software > Excel > hiding a column until triggered by another column value or reference

Excel - hiding a column until triggered by another column value or reference


Expert: Tom Ogilvy - 7/9/2009

Question
QUESTION: I would like to hide a column unless a value/trigger/word is "true" in another column. ie. column "R" hidden = true if column "G", rows 5:20 = blank?

I am unsure of correct writing for this macro?

ANSWER: Rob,

I think this is what you want.

sub HideR()
Dim r1 as Range, cell as Range
Dim bBlank as boolean
set r1 = Range("G5:G20")
bBlank = True
for each cell in r1
 if not isempty(cell) then
    bBlank = False
    exit for
 end if
Next
if bBlank then
 Range("R:R").Entirecolumn.Hidden = True
else
 Range("R:R").Entirecolumn.Hidden = False
end if
End Sub

You have to run this macro for it to do anything.
It should be placed in module1 or equivalent.

If I understood your question correctly, it worked for me.
--
Regards,
Tom Ogilvy


---------- FOLLOW-UP ----------

QUESTION: Tom

Thanks. I incorrectly indicated range G5:G20 should have been "J" quick fix. I am having dificulty restoring the column when a value or statement is entered in the "trigger-hide" column?
You indicated it worked for you, what am I missing; used formula as listed? The "R" column hides when I use the macro, when a value/statement is entered in "J" the "R" column does not come back?

Answer
Rob,

Did you run the macro again after you put the value in J/G.  The macro has to run to do work.  


If you want it tied to the an event so it runs everytime you edit a cell in J5:J20, then you would have to put it in a worksheet level event.  Right click on the sheet tab and select view code.  Then in the dropdowns at the top of the module, worksheet in the left and Change in the right (not selection_change) puts this code in the module.

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

then you add code to that:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r1 As Range, cell As Range
Dim bBlank As Boolean
If not intersect(target,Range("J5:J20")) is nothing then

Set r1 = Range("J5:J20")
bBlank = True
For Each cell In r1
If Not IsEmpty(cell) Then
   bBlank = False
   Exit For
End If
Next
If bBlank Then
Range("R:R").EntireColumn.Hidden = True
Else
Range("R:R").EntireColumn.Hidden = False
End If
End if
End Sub

Now, when I enter a value in any cell in J5:J20, the column is unhidden.  If I make the range blank, then the column is hidden.  You have to prime the pump so to speak to get the procedure synchronized with the situation.  (clear J5:J20, then add a value, then delete it)

So when I do that the macro fires whenever I edit a cell anywhere in the worksheet.  the IF statement doesn't take action unless the editing included some or all of J5:J20.  

Perhaps that is what you want.

Again, presented code was tested and worked fine for me.

--
Regards,
Tom Ogilvy  

Ask a Question


 
About Excel
This topic answers questions related to Microsoft Excel spreadsheet (or workbook) stand-alone or Mircrosoft Office Excel including Excel 2003, Excel 2007, Office 2000, and Office XP. You can get Excel help on Excel formulas(or functions), Excell macros, charting in Excel, advanced features, and the general use of Excel. This does not provide a general Excel tutorial nor the basics of using a spreadsheet. It provides specific answers to using Microsoft Excel only. If you do not see your Excel question answered in this area then please ask an Excel question here
User Agreement | Privacy Policy | Kids' Privacy Policy | Help
Copyright  © 2008 About, Inc. AllExperts, AllExperts.com, and About.com are registered trademarks of About, Inc. All rights reserved.