Excel Howto?
    Excel VBA how to?
    
    -Aviral Mittal
    
    
    
    
    1. How to get values from a different Column
        based upon a match criteria
    A Excel sheet has Country Names in Column 1. 
    Country's produce/produce in Column2
    Now it is desired for example a list of all countries which produce
    a common product.
    This will be more clear from the figure shown below:
    
    
    
    The objective here is to get say all Cocoa producing countries. Or
    Say all Cotton Producing Countries.
    Solution:
    1. Find the list of row numbers of match criteria, say for example a
    list of all row numbers with Cotton is
    3,7,13
    2. Find the values in Column A (1) for these rows.
    
    The following function does the job 1, finds the Comma Separated
    String of row numbers containing a string
    '------------------------
    Function FindStrInColCSV(fStr As String,
          colNum As Long, Optional shtName As String) As String
          'This function will find all occurences of 'fStr' in a named,
          given column and return a CSV String of Row Numbers
          'Example Use : MsgBox FindStrInColCSV("Cotton", 2, "Sheet2")
          'This will return a CSV of all rows number if and where the
          string 'fStr' was found in column 'colNum'
          'Return value is "1,3,5,8,9" kinda
          Dim sht As Worksheet
          Dim mCell As Range
          Dim rStr As String
          
          
          If (shtName = "") Then
            shtName = "Sheet2"
          End If
            On Error GoTo errorHandler
            Set sht = ThisWorkbook.Worksheets(shtName)
            On Error GoTo 0 'Null the effect of goto errorHandler
          above.
            
            sht.Activate
            If colNum = 0 Then 'Wrong entry, default it to 1
              colNum = 1
            End If
            
            rStr = ColNum2Ch(colNum) & ":" &
          ColNum2Ch(colNum)
            
            Set mCell = Columns(rStr).Find(What:=fStr,
          lookat:=xlWhole) 'searchStr is the string which is being
          searched
            'MsgBox mCell.Address
            
            If mCell Is Nothing Then
              Debug.Print "ERROR! From Function
          'FindStrInColCSV': fStr '" & fStr & "' not found in
          sheet '" & shtName & "'" & " in given col = "
          & colNum
              MsgBox "ERROR! From Function
          'FindStrInColCSV': fStr " & "'" & fStr & "'" &
          " not found in sheet '" & shtName & "'" & " in
          given col = " & colNum
              Exit Function
            Else
              FindStrInColCSV = Split(mCell.Address,
          "$")(2)
              'Debug.Print "INFO: From Function
          'FindStrInColCSV': Found '" & fStr & "' Address = "
          & mCell.Address & " In Sheet '" & shtName &
          "'"
            End If
          
            Dim firstCellAddress As String
            firstCellAddress = mCell.Address
            Dim ii As Long
            ii = 0
            Do
              ii = ii + 1
              'MsgBox mCell.Address & " " & ii
              If (Not ii = 1) Then
                FindStrInColCSV =
          FindStrInColCSV & "," & Split(mCell.Address, "$")(2)
              End If
              Set mCell = Columns(rStr).FindNext(mCell)
              
            Loop While Not mCell Is Nothing And firstCellAddress
          <> mCell.Address
          
            Exit Function
          errorHandler:
            Debug.Print "ERROR! From Function 'FindStrInColCSV':
          Sheet " & "'" & shtName & "'" & " Does not
          exist"
            MsgBox "ERROR! From Function 'FindStrInColCSV': Sheet "
          & "'" & shtName & "'" & " Does not exist"
          
          End Function
          Function ColNum2Ch(colNum As Long) As String
            ColNum2Ch = Split(Split(Columns(colNum).Address,
          "$")(1), ":")(0)
          End Function
        '---------------------------------------------------------------------------------------
    Then the follwoing function gets the values from the rows returned
    from Above Function in a given Coumn
    
    
    Function getValsForRowVec(rowVecCSV As
          String, colNum As Long, Optional shtName As String) As String
          'This function will take in a CSV of row numbers e.g.
          "2,4,7,10" and return corresponding cell values from
          row,colNum cell
          'Example usage getValsForRowVec("2,3,4,5,9",5)
          'Example usage 2 getValsForRowVec(FindStrInColCSV("Cotton", 2,
          "Sheet2"),1)
          'The above example finds Cotton in Col number 2, then gets the
          values from same rows from Col1
            Dim element As Variant
            Dim ii As Long
            Dim sht As Worksheet
            ii = 0
            If (shtName = "") Then
              shtName = "Sheet2"
            End If
            On Error GoTo errorHandler
            Set sht = ThisWorkbook.Worksheets(shtName)
            On Error GoTo 0 'Null the effect of goto errorHandler
          above.
            
            sht.Activate
          
            For Each element In Split(rowVecCSV, ",")
              If (ii = 0) Then
                getValsForRowVec =
          Range(ColNum2Ch(colNum) & element).Value
              Else
                getValsForRowVec =
          getValsForRowVec & "," & Range(ColNum2Ch(colNum) &
          element).Value
              End If
              ii = ii + 1
            Next element
              Exit Function
          errorHandler:
            Debug.Print "ERROR! From Function 'getValsForRowVec':
          Sheet " & "'" & shtName & "'" & " Does not
          exist"
            MsgBox "ERROR! From Function 'getValsForRowVec': Sheet
          " & "'" & shtName & "'" & " Does not exist"
          End Function
    
    Sub Try
        msgBox getValsForRowVec(FindStrInColCSV("Cotton",
          2, "Sheet2"),1,"Sheet2")
      End Sub
    The above Subroutine 'Try' will return "China,Turkey,India" as these
    are all the countries with "Cotton" in Col 2
    
    The WB with the above code can be downloaded here: (The example
    lists shown in diagram is in Sheet2)
    Book6.xlsm
    
    
      <- Previous      
               
               
               
               
               
               
               
        
      Next -> 
    
    Key Words: Excel VBA to implement Filters. Col value
      based upon match criteria