how do you WANT to do it? You can use two input boxes: Startnum = Inputbox("Enter Lower Index Number","Index-Lower") Stopnum = Inputbox("Enter Upper Index Number", "Index-Upper")
then use: if ((Cells(I,1) >= Startnum) and (Cells(I,1) <= StopNum)) then Or you can collect the info and split it: SelRange = InputBox("Enter Range to Hide","Hide") If (InStr(1, SelRange, "-") <= 0) Then msgbox "Range must be in format 1-3" exit sub end if NumArray = split(selrange,"-") and use: if ((Cells(I,1) >= NumArray(0)) and (Cells(I,1) <= NumArray(1))) then ________________________________ From: Joe Wilson <jhwilson1...@gmail.com> To: excel-macros@googlegroups.com Sent: Thursday, April 30, 2009 8:52:04 AM Subject: $$Excel-Macros$$ Re: Consolidate Macro Paul, thanks...that work well, but how do I set it up to where I enter a start # and an ending # in the inputbox? e.g. start with 1 and end with 10? Thanks again. I appreciate all of your help. On Thu, Apr 30, 2009 at 7:22 AM, Paul Schreiner <schreiner_p...@att.net> wrote: ok... I think I understand. Try: '============================================================== Sub Hide_Rows() Dim RowNum As Integer Dim cnt, I cnt = 0 RowNum = InputBox("Enter Row Index Number to Hide", "Index") If (RowNum = 0) Then 'Entering "0" UNhides all rows Cells.EntireRow.Hidden = False else For I = 3 To 1000 If (Cells(I, 1) = RowNum) Then Rows(I & ":" & I).EntireRow.Hidden = True End If Next I End If End Sub '============================================================== ________________________________ From: Joe Wilson <jhwilson1...@gmail.com> To: excel-macros@googlegroups.com Sent: Wednesday, April 29, 2009 1:57:04 PM Subject: $$Excel-Macros$$ Re: Consolidate Macro Paul, Thanks for the response. In the spreadsheet, there is a number holder for a name to be added later. It's because we have so many linked files and we add rows for future additions to the model. So, there are probably 20 instances where I have rows that go from 3 to 18 and instead of going one by one to hide each row I created the below code and basically I want to shorten it to where it sees a number 3 to 18 in column A and hide that row. I'd also like an input box that pops up and I enter a start number and end number. Or if I answer "10", it will hide rows 3-13 ?? 10 will hide any row in column A that has the number 10. On Wed, Apr 29, 2009 at 1:07 PM, Paul Schreiner <schreiner_p...@att.net> wrote: I'm not sure if I understand how you're determining "rows that start with the number 3 and goes to 18 or higher" What does "start with number 3" mean? is the cell in column "A" a number? Is it always the same as the row number? or are you saying you want to hide rows that have the number 3, 30,31,32...,300,301... 3000, 3001... because they all start with "3".. and.. "ask for the number of rows to be hidden" is this whole thing a way to say that you want to ask the user for the last row number and hide all rows from 3 to that row number. Or if I answer "10", it will hide rows 3-13 ?? Will it always be consecutive? here's some differences: '============================================================== Sub Hide_Rows() 'Hide rows from 3 to Specified row Dim LastRow As Integer LastRow = InputBox("Enter Last Row Number", "Last Row") If (LastRow >= 3) Then Cells.EntireRow.Hidden = False Rows("3:" & LastRow).EntireRow.Hidden = True ElseIf (LastRow = 0) Then Cells.EntireRow.Hidden = False End If End Sub '============================================================== Sub Hide_Rows2() 'hide X number of rows Dim LastRow As Integer LastRow = InputBox("Enter Number of Rows", "Number of Rows") LastRow = LastRow + 2 If (LastRow >= 3) Then Cells.EntireRow.Hidden = False Rows("3:" & LastRow).EntireRow.Hidden = True ElseIf (LastRow = 0) Then Cells.EntireRow.Hidden = False End If End Sub '============================================================== Sub Hide_Rows3() 'hide X number of rows that have a value of 3 or more Dim LastRow As Integer Dim cnt, I cnt = 0 LastRow = InputBox("Enter Number of Rows", "Number of Rows") If (LastRow >= 3) Then Cells.EntireRow.Hidden = False For I = 3 To 1000 If (Cells(I, 1) >= 3) Then Rows(I & ":" & I).EntireRow.Hidden = True cnt = cnt + 1 If cnt >= LastRow Then Exit For End If Next I ElseIf (LastRow = 0) Then Cells.EntireRow.Hidden = False End If End Sub '============================================================== is one of these close? Paul ________________________________ From: Joe Wilson <jhwilson1...@gmail.com> To: excel-macros@googlegroups.com Sent: Wednesday, April 29, 2009 11:37:00 AM Subject: $$Excel-Macros$$ Consolidate Macro Hi group. Could someone help me with shortening the below Macro. Basically I want to hide rows that start with the number 3 and goes to 18 or higher, and you can see below how I did it the long way. Is there a way I could have an input box popup that would ask me the # of rows that I want hidden? Thanks for your help. Also, could someone explain Loop to me and an example of how it works. Maybe I could use the loop function here? Sub Hide_Rows() Dim i As Integer For i = 3 To 1000 Sheets("Total Mo Plus").Select If ActiveSheet.Range("a" & i).Value = "3" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "4" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "5" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "6" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "7" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "8" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "9" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "10" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "11" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "12" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "13" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "14" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "15" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "16" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "17" Then Rows(i & ":" & i).EntireRow.Hidden = True ElseIf ActiveSheet.Range("a" & i).Value = "18" Then Rows(i & ":" & i).EntireRow.Hidden = True End If Next i End Sub --~--~---------~--~----~------------~-------~--~----~ ------------------------------------------------------------------------------------- Some important links for excel users: 1. Excel and VBA Tutorials(Video and Text), Free add-ins downloads at http://www.excelitems.com 2. Excel tutorials at http://www.excel-macros.blogspot.com 3. Learn VBA Macros at http://www.vbamacros.blogspot.com 4. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com If you find any spam message in the group, please send an email to: Ayush Jain @ jainayus...@gmail.com or Ashish Jain @ 26may.1...@gmail.com ------------------------------------------------------------------------------------- -~----------~----~----~----~------~----~------~--~---