I take back my comment earlier, this code works great thank you!
On Oct 8, 4:51 pm, Sam Mathai Chacko <samde...@gmail.com> wrote:
> Try this. Code with file attached.
>
> Sub Consolidator()
>
>     Dim rngCell As Range
>     Dim wks As Worksheet
>
>     Application.ScreenUpdating = False
>     For Each rngCell In Worksheets("Selections").Range("XColumn").Cells
> 'Where XColumns is a named range having the 3 columns where user marks X
>         If rngCell.Value = "X" Then
>             Worksheets("Data").UsedRange.AutoFilter 2, rngCell.Offset(,
> 1).Value
>             If Worksheets("Data").Cells(Rows.Count, 2).End(xlUp).Row > 1
> Then
>                 On Error Resume Next
>                 Set wks = Worksheets(rngCell.Offset(, 1).Value)
>                 Err.Clear: On Error GoTo -1: On Error GoTo 0
>                 If wks Is Nothing Then
>                     Set wks =
> ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
>                     wks.Name = Left(rngCell.Offset(, 1).Value, 31)
>                     Worksheets("Data").UsedRange.Copy wks.Cells(1)
>                     With wks.UsedRange
>                         .EntireRow.RowHeight = 40
>                         .EntireColumn.ColumnWidth = 200
>                         .EntireColumn.AutoFit
>                         .EntireRow.AutoFit
>                         .WrapText = True
>                     End With
>                 Else
>                     Worksheets("Data").Range(Worksheets("Data").Cells(2, 1),
> Worksheets("Data").Cells(Worksheets("Data").Cells(Rows.Count,
> 2).End(xlUp).Row, 5)).Copy wks.Cells(wks.Rows.Count, 2).End(xlUp).Offset(1,
> -1)
>                 End If
>                 Set wks = Nothing
>             End If
>         End If
>     Next rngCell
>     Worksheets("Data").AutoFilterMode = False
>     Application.Goto Worksheets("Selections").Cells(1)
>     Application.ScreenUpdating = True
>
>     Set rngCell = Nothing
>
> End Sub
>
> On Sun, Oct 9, 2011 at 2:19 AM, Monizri <moni...@gmail.com> wrote:
> > The autofilter can be an alternative. Is it possible get the loop to
> > read into the second bit of code where it has "FHCX"  and spit out
> > code that way? Thats where ive been racking my brain.
>
> > I do appreciate this Don
>
> > On Oct 8, 4:29 pm, "dguillett1" <dguille...@gmail.com> wrote:
> > > After looking at your file on the link provided it seems that you want to
> > > simply use data>autofilter>copy. If that is correct, it is fairly easy to
> > > write a macro to loop thru looking for X and then filter the data sheet
> > by
> > > that value and copy to the other sheets. Is that what you want?
>
> > > Sub filterandcopy()
> > > 'for each c in activesheet.usedrange.specialcells(xlce
> > > For Each c In Range("b2:b21,f2:f21,j2,j21")
> > > If UCase(c) = "X" Then
> > > 'MsgBox c.Row
> > > End If
> > > Next c
> > > End Sub
>
> > > Don Guillett
> > > SalesAid Software
> > > dguille...@gmail.com
>
> > > -----Original Message-----
> > > From: Monizri
> > > Sent: Saturday, October 08, 2011 2:56 PM
> > > To: MS EXCEL AND VBA MACROS
> > > Subject: Re: $$Excel-Macros$$ Read a menu and produce results
>
> > > awesome, here's a linkhttp://www.box.net/shared/o0uley3sbbh3fxu315ou
>
> > > The tabs that say FHCX, FHMX, and FNMX are what i wanted the results
> > > to be once the loop happened...
>
> > > any ideas for code or logic i can use?
>
> > > On Oct 8, 3:29 pm, Sam Mathai Chacko <samde...@gmail.com> wrote:
> > > > Just go to your gmail inbox, and reply to the mail.
>
> > > > OR
>
> > > > Go to box.net, and you can upload your file there, and provide a link
> > > > here.
>
> > > > Regards,
>
> > > > Sam
>
> > > > On Sun, Oct 9, 2011 at 12:57 AM, Monizri <moni...@gmail.com> wrote:
> > > > > Thanks Don, I can try FIND instead of looping, i am trying to add my
> > > > > file but i don't see anywhere i can attach my file. Do you know
> > where?
>
> > > > > Tx
>
> > > > > Matt
>
> > > > > On Oct 8, 11:47 am, "dguillett1" <dguille...@gmail.com> wrote:
> > > > > > It would be helpful to post your files with before/after examples.
> > I
> > > > > would
> > > > > > think that instead of using a loop you would use FIND (look in vba
> > > > > > help)
>
> > > > > > Don Guillett
> > > > > > SalesAid Software
> > > > > > dguille...@gmail.com
>
> > > > > > -----Original Message-----
> > > > > > From: Monizri
> > > > > > Sent: Saturday, October 08, 2011 9:01 AM
> > > > > > To: MS EXCEL AND VBA MACROS
> > > > > > Subject: Re: $$Excel-Macros$$ Read a menu and produce results
>
> > > > > > Hi Sam, I apologize for not being clear, i was sure how to pose the
> > > > > > question.
> > > > > > I have two spreadsheets. One with a menu with a bunch of criteria
> > (of
> > > > > > which you can select the criteria you want by placing an "X" in a
> > > > > > designated area ). The second spreadsheet will have data i need to
> > > > > > search through. So based on the selections on the menu page, i want
> > it
> > > > > > to loop through the data on the data page a find the criteria
> > > > > > selections in the data sheet and pick the data in that row and post
> > it
> > > > > > in a new tab/worksheet.
>
> > > > > > -Matt
>
> > > > > > I have two pieces of code i've been trying to work with but am
> > unsure
> > > > > > how to connect them. The first one reads a menu and the ranges and
> > > > > > thats it. The second one, will create a new tab with search
> > results.
> > > > > > How can i get the two codes to work together? to read the menu and
> > > > > > produce the results...
>
> > > > > > 1) 'reads the menu
>
> > > > > > Sub Read_Geographic_Menu()
> > > > > > Sheets("Selections").Select
> > > > > > Range("A1").Select
>
> > > > > > i_state = 0
> > > > > > g_num_select_states = 0
>
> > > > > > For icol = 1 To STATES_NUM_COLS
> > > > > > For irow = 1 To STATES_PER_COL
> > > > > > i_state = i_state + 1
> > > > > > g_state_select(i_state) = False
> > > > > > g_state_postal(i_state) = Trim(Range("m6StatePostal" &
> > > > > > icol).Cells(irow))
> > > > > > g_state_name(i_state) = Trim(Range("m6StatesNames" &
> > > > > > icol).Cells(irow))
> > > > > > g_state_id_number(i_state) = i_state
> > > > > > If Range("m6States" & icol).Cells(irow) <> "" Then
> > > > > > g_state_select(i_state) = True
> > > > > > g_num_select_states = g_num_select_states + 1
> > > > > > End If
> > > > > > Next irow
> > > > > > Next icol
> > > > > > End Sub
>
> > > > > > 2) searches for data (in this case "FHCX") and pulls the column
> > data i
> > > > > > need.
> > > > > > Sub ServiceReport()
> > > > > > ' Copy the selected range to the Report worksheet
> > > > > > Dim WSD As Worksheet ' Data worksheet
> > > > > > Dim WSR As Worksheet ' Report worksheet
>
> > > > > > Set WSD = Worksheets("Data")
>
> > > > > > ' Add a new worksheet to this workbook
> > > > > > Set WSR = Worksheets.Add(after:=Worksheets("Data"))
>
> > > > > > ' Rename the new worksheet & set up titles
> > > > > > WSR.Name = "Service"
> > > > > > WSR.Cells(1, 1) = "Service Report"
> > > > > > WSR.Cells(1, 1).Font.Size = 14
>
> > > > > > WSD.Range("A1:E1").Copy Destination:=WSR.Cells(3, 1)
> > > > > > NextRow = 4
>
> > > > > > ' Loop through all records on WSD
> > > > > > FinalRow = WSD.Cells(Rows.Count, 1).End(xlUp).Row
> > > > > > For i = 2 To FinalRow
> > > > > > If WSD.Cells(i, 2) = "FHCX" Then
> > > > > > ' Copy this record to the next row on WSR
> > > > > > WSD.Cells(i, 1).Resize(1, 5).Copy Destination:=WSR.Cells(NextRow,
> > 1)
> > > > > > NextRow = NextRow + 1
> > > > > > End If
> > > > > > Next i
>
> > > > > > ' Make sure WSR is the active sheet
> > > > > > WSR.Select
>
> > > > > > ' Report that the macro is done
> > > > > > MsgBox Prompt:=NextRow - 4 & " service records copied to the
> > service
> > > > > > report."
>
> > > > > > End Sub
>
> > > > > > On Oct 8, 12:17 am, Sam Mathai Chacko <samde...@gmail.com> wrote:
> > > > > > > I believe the forum is not able to comprehend what 'can i get
> > excel
> > > > > > > to
> > > > > > > read
> > > > > > > a menu with selections using "X" in a cell' is trying to convey.
> > > > > > > Maybe
> > > > > you
> > > > > > > want to rephrase it, or share an example of what you are trying
> > to
> > > > > > > do.
>
> > > > > > > Sam
>
> > > > > > > On Fri, Oct 7, 2011 at 10:55 PM, Monizri <moni...@gmail.com>
> > wrote:
> > > > > > > > Hi, I have the following code that searches for data based on
> > what
> > > > > > > > i
> > > > > > > > type in it (in this case it is "FHCX") and posts it in a new
> > > > > > > > sheet.
> > > > > > > > How can i get excel to read a menu with selections using "X" in
> > a
> > > > > cell
> > > > > > > > and feed it into the code below to produce results on a new
> > tab?
>
> > > > > > > > Sub ServiceReport()
> > > > > > > >    ' Copy the selected range to the Report worksheet
> > > > > > > >    Dim WSD As Worksheet ' Data worksheet
> > > > > > > >    Dim WSR As Worksheet ' Report worksheet
>
> > > > > > > >    Set WSD = Worksheets("Data")
>
> > > > > > > >    ' Add a new worksheet to this workbook
> > > > > > > >    Set WSR = Worksheets.Add(after:=Worksheets("Data"))
>
> > > > > > > >    ' Rename the new worksheet & set up titles
> > > > > > > >    WSR.Name = "Service"
> > > > > > > >    WSR.Cells(1, 1) = "Service Report"
> > > > > > > >    WSR.Cells(1, 1).Font.Size = 14
>
> > > > > > > >    WSD.Range("A1:E1").Copy Destination:=WSR.Cells(3, 1)
> > > > > > > >    NextRow = 4
>
> > > > > > > >    ' Loop through all records on WSD
> > > > > > > >    FinalRow = WSD.Cells(Rows.Count, 1).End(xlUp).Row
> > > > > > > >    For i = 2 To FinalRow
> > > > > > > >        If WSD.Cells(i, 2) = "FHCX" Then
> > > > > > > >            ' Copy this record to the next row on WSR
> > > > > > > >            WSD.Cells(i, 1).Resize(1, 5).Copy
> > > > > > > > Destination:=WSR.Cells(NextRow, 1)
> > > > > > > >            NextRow = NextRow + 1
> > > > > > > >        End If
> > > > > > > >    Next i
>
> > > > > > > >    ' Make sure WSR is the active sheet
> > > > > > > >    WSR.Select
>
> > > > > > > >    ' Report that the macro is done
> > > > > > > >    MsgBox Prompt:=NextRow - 4 & " service records copied to the
> > > > > > > > service report."
>
> > > > > > > > End Sub
>
> > > > > > > > --
>
> > ---------------------------------------------------------------------------
> > -------
> > > > > > > > Some important links for excel users:
> > > > > > > > 1. Follow us on TWITTER for tips tricks and links :
>
> ...
>
> read more »
>
>  qryCMSFileBY 09-23-11.xlsm
> 223KViewDownload

-- 
----------------------------------------------------------------------------------
Some important links for excel users:
1. Follow us on TWITTER for tips tricks and links : 
http://twitter.com/exceldailytip
2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310
3. Excel tutorials at http://www.excel-macros.blogspot.com
4. Learn VBA Macros at http://www.quickvba.blogspot.com
5. Excel Tips and Tricks at http://exceldailytip.blogspot.com
 
To post to this group, send email to excel-macros@googlegroups.com

<><><><><><><><><><><><><><><><><><><><><><>
Like our page on facebook , Just follow below link
http://www.facebook.com/discussexcel

Reply via email to