Consulting

Results 1 to 4 of 4

Thread: VBA - How to select range of cells based on value of 2 cells in each row

  1. #1
    VBAX Newbie
    Joined
    Jun 2018
    Posts
    2
    Location

    VBA - How to select range of cells based on value of 2 cells in each row

    Hello

    I am trying to make a sheet to help me organize data I have gathered.

    I want to write a VBA script to select every row in a range A2:E1000 where the cell in column B = "GP20" and cell in column E does not equal "Finished"

    I have messed around with a few scripts I found in other posts in the forum with no luck. Can anyone help?

    Thanks

  2. #2
    Moderator VBAX Sage SamT's Avatar
    Joined
    Oct 2006
    Location
    Near Columbia
    Posts
    7,814
    Location
    What are you planning on doing after you select all those Rows?

    Guessing that you plan to hide all the others
    'Start Sub
    dim Cel As Range
    
    For each Cel in Range(Range("B2"),Cells(Rows.Count, "B").End(xlUp))
       If Cel <> "GP20" Then
          Cel.EntireRow.Hidden = True
          Exit If
       ElseIf LCase(Cel.Offset(0, 3)) = "finished" then
          Cel.EntireRow.Hidden = True
       End If
    Next Cel
    End Sub
    If that's what you want, I can show you how to do the same thing with "G19, "G21", etc, and Finished or unfinished or any other such term.
    I expect the student to do their homework and find all the errrors I leeve in.


    Please take the time to read the Forum FAQ

  3. #3
    VBAX Newbie
    Joined
    Jun 2018
    Posts
    2
    Location
    Hey Sam,

    I want to copy all rows that meet the criteria and paste on a new sheet. Can you help with that?

    Crev64

  4. #4
    VBAX Sage
    Joined
    Apr 2007
    Location
    United States
    Posts
    8,728
    Location
    Starting with the macro recorder and making the resulting macro a little more general purpose



    Option Explicit
    
    Sub Macro1()
        Dim wsSrc As Worksheet, wsDest As Worksheet
        Dim rSrc As Range
    
        Set wsSrc = Worksheets("Sheet1")
        Set wsDest = Worksheets("Sheet2")
        Set rSrc = wsSrc.Cells(1, 1).CurrentRegion
        
        If wsSrc.AutoFilterMode Then wsSrc.AutoFilterMode = False
            
        With rSrc
            .Rows(1).AutoFilter
            .AutoFilter Field:=2, Criteria1:="=GP20", Operator:=xlAnd
            .AutoFilter Field:=5, Criteria1:="<>Finished", Operator:=xlAnd
            .SpecialCells(xlCellTypeVisible).Copy wsDest.Cells(1, 1)
            Application.CutCopyMode = False
        End With
        
        wsSrc.AutoFilterMode = False
        
    End Sub
    Attached Files Attached Files
    ---------------------------------------------------------------------------------------------------------------------

    Paul


    Remember: Tell us WHAT you want to do, not HOW you think you want to do it

    1. Use [CODE] ....[/CODE ] Tags for readability
    [CODE]PasteYourCodeHere[/CODE ] -- (or paste your code, select it, click [#] button)
    2. Upload an example
    Go Advanced / Attachments - Manage Attachments / Add Files / Select Files / Select the file(s) / Upload Files / Done
    3. Mark the thread as [Solved] when you have an answer
    Thread Tools (on the top right corner, above the first message)
    4. Read the Forum FAQ, especially the part about cross-posting in other forums
    http://www.vbaexpress.com/forum/faq...._new_faq_item3

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •