ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help with Find Function (https://www.excelbanter.com/excel-programming/423811-help-find-function.html)

JBurlison

Help with Find Function
 
Hello im new to excel VBA i come from a strong Access VBA backround here is
what im tring to do:

Im Trying to search for something on another sheet and copy it over to the
search sheet as the search results.

For the search id like it to return anything that has for example the word
"test" in it

so if i put "Test" in the search box i want it to recongnize things like
"Testing1", "initial Tests", "Test Name 1". ect..

if it has "test" anywhere in the cell i want it to return.

this only dose exact maches. any idea how i can get it to do this?

Now i was told about a find function im not sure how to implament it. i
looked up the function and im a little confused on it.

heres another help thread i posted it has the excel file.
http://www.access-programmers.co.uk/...099#post805099

im using excel 2003

Code:

Sub clickSearch()
    Dim Row As Integer
    Dim Col As Integer
    Dim RowCopy As Integer
    Dim ColCopy As Integer
    Dim Copy As Integer
    Dim CopyCellA As String
    Dim CopyCellB As String
    Dim CopyCellC As String
    Dim SearchFor
    Dim ClrRg
'Clears the search results fields
    Set ClrRg = Union(Range("A2:A1000"), Range("B2:B1000"), Range("C2:C1000"))
    ClrRg.Clear
'States what you are searching for (via the search box)
    SearchFor = Cells(4, 6)
    Copy = 1
    RowCopy = 1
    ColCopy = 1
    Row = 2
    Col = 1
 
 
RunColA:
'Clears any copied infromation
    CopyCellA = ""
    CopyCellB = ""
    CopyCellC = ""
'Checks the cell for the search information, then checks the collum it is
currently in to copy and pase the correct information
    If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then
            If Col = 1 Then
                CopyCellA = Sheets("ImmageLocations").Cells(Row, Col)
                CopyCellB = Sheets("ImmageLocations").Cells(Row, Col + 1)
                CopyCellC = Sheets("ImmageLocations").Cells(Row, Col + 2)
            Else
                If Col = 2 Then
                    CopyCellA = Sheets("ImmageLocations").Cells(Row, Col - 1)
                    CopyCellB = Sheets("ImmageLocations").Cells(Row, Col)
                    CopyCellC = Sheets("ImmageLocations").Cells(Row, Col + 1)
                Else
                    If Col = 3 Then
                        CopyCellA = Sheets("ImmageLocations").Cells(Row, Col
- 2)
                        CopyCellB = Sheets("ImmageLocations").Cells(Row, Col
- 1)
                        CopyCellC = Sheets("ImmageLocations").Cells(Row, Col)
                    End If
                End If
            End If
        If Col = 1 Then
            Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellA
            Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellB
            Sheets("Search").Cells(RowCopy + Copy, Col + 2) = CopyCellC
        Else
            If Col = 2 Then
                Sheets("Search").Cells(RowCopy + Copy, Col - 1) = CopyCellA
                Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellB
                Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellC
            Else
                If Col = 3 Then
                    Sheets("Search").Cells(RowCopy + Copy, Col - 2) =
CopyCellA
                    Sheets("Search").Cells(RowCopy + Copy, Col - 1) =
CopyCellB
                    Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellC
                End If
            End If
        End If
'Moves to the next Row
        Copy = Copy + 1
        Row = 1 + Row
        GoTo RunColA
    Else
        Row = 1 + Row
'Checks to see if it has searched all fields in that collum, if so resets
rows and moved to the next collum
        If Sheets("ImmageLocations").Cells(Row, Col) = "" Or
IsNull(Sheets("ImmageLocations").Cells(Row, Col)) Then
            Col = 1 + Col
            Row = 2
            If Col = 4 Then
                GoTo Endsub
            Else
                GoTo RunColA
            End If
        Else
            GoTo RunColA
        End If
    End If
Endsub:
End Sub


if you can sift thrugh the mess here is where im having my problem:

If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then


the "Like" function is not the correct use here im told i need to use the
find function.

this code works but only exact matches. (even case)

i need case not to be a issue.







Bob Phillips[_3_]

Help with Find Function
 
Look up Find and FindNext in VBA help, it will save the loops and you can do
part matches.

--
__________________________________
HTH

Bob

"JBurlison" wrote in message
...
Hello im new to excel VBA i come from a strong Access VBA backround here
is
what im tring to do:

Im Trying to search for something on another sheet and copy it over to the
search sheet as the search results.

For the search id like it to return anything that has for example the word
"test" in it

so if i put "Test" in the search box i want it to recongnize things like
"Testing1", "initial Tests", "Test Name 1". ect..

if it has "test" anywhere in the cell i want it to return.

this only dose exact maches. any idea how i can get it to do this?

Now i was told about a find function im not sure how to implament it. i
looked up the function and im a little confused on it.

heres another help thread i posted it has the excel file.
http://www.access-programmers.co.uk/...099#post805099

im using excel 2003

Code:

Sub clickSearch()
    Dim Row As Integer
    Dim Col As Integer
    Dim RowCopy As Integer
    Dim ColCopy As Integer
    Dim Copy As Integer
    Dim CopyCellA As String
    Dim CopyCellB As String
    Dim CopyCellC As String
    Dim SearchFor
    Dim ClrRg
'Clears the search results fields
    Set ClrRg = Union(Range("A2:A1000"), Range("B2:B1000"),
Range("C2:C1000"))
    ClrRg.Clear
'States what you are searching for (via the search box)
    SearchFor = Cells(4, 6)
    Copy = 1
    RowCopy = 1
    ColCopy = 1
    Row = 2
    Col = 1


RunColA:
'Clears any copied infromation
    CopyCellA = ""
    CopyCellB = ""
    CopyCellC = ""
'Checks the cell for the search information, then checks the collum it is
currently in to copy and pase the correct information
    If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then
            If Col = 1 Then
                CopyCellA = Sheets("ImmageLocations").Cells(Row, Col)
                CopyCellB = Sheets("ImmageLocations").Cells(Row, Col + 1)
                CopyCellC = Sheets("ImmageLocations").Cells(Row, Col + 2)
            Else
                If Col = 2 Then
                    CopyCellA = Sheets("ImmageLocations").Cells(Row, Col -
1)
                    CopyCellB = Sheets("ImmageLocations").Cells(Row, Col)
                    CopyCellC = Sheets("ImmageLocations").Cells(Row, Col +
1)
                Else
                    If Col = 3 Then
                        CopyCellA = Sheets("ImmageLocations").Cells(Row,
Col
- 2)
                        CopyCellB = Sheets("ImmageLocations").Cells(Row,
Col
- 1)
                        CopyCellC = Sheets("ImmageLocations").Cells(Row,
Col)
                    End If
                End If
            End If
        If Col = 1 Then
            Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellA
            Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellB
            Sheets("Search").Cells(RowCopy + Copy, Col + 2) = CopyCellC
        Else
            If Col = 2 Then
                Sheets("Search").Cells(RowCopy + Copy, Col - 1) = CopyCellA
                Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellB
                Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellC
            Else
                If Col = 3 Then
                    Sheets("Search").Cells(RowCopy + Copy, Col - 2) =
CopyCellA
                    Sheets("Search").Cells(RowCopy + Copy, Col - 1) =
CopyCellB
                    Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellC
                End If
            End If
        End If
'Moves to the next Row
        Copy = Copy + 1
        Row = 1 + Row
        GoTo RunColA
    Else
        Row = 1 + Row
'Checks to see if it has searched all fields in that collum, if so resets
rows and moved to the next collum
        If Sheets("ImmageLocations").Cells(Row, Col) = "" Or
IsNull(Sheets("ImmageLocations").Cells(Row, Col)) Then
            Col = 1 + Col
            Row = 2
            If Col = 4 Then
                GoTo Endsub
            Else
                GoTo RunColA
            End If
        Else
            GoTo RunColA
        End If
    End If
Endsub:
End Sub



if you can sift thrugh the mess here is where im having my problem:

If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then


the "Like" function is not the correct use here im told i need to use the
find function.

this code works but only exact matches. (even case)

i need case not to be a issue.









JBurlison

Help with Find Function
 
oops kep giving me an errror while i was trying to post it i thought i lost
it all sorry for the multiple posts. can just use this one.

Bob Phillips[_3_]

Help with Find Function
 
It's not you, it is the forum. It has a problem.

--
__________________________________
HTH

Bob

"JBurlison" wrote in message
...
oops kep giving me an errror while i was trying to post it i thought i
lost
it all sorry for the multiple posts. can just use this one.




JBurlison

Help with Find Function
 
here is the example it gives

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With

Is "firstAddress = c.Address" relavent to the procedure?

I dont understand how this function works.

First your decalring the worksheet and the range of cells you wish to search
in.
Then you set "c" to find the number 2
(if not c is nothing) dose this mean if the number 2 is not found in the cell?
firstAddress = c.Address (i dont understand this at all is the a variable
"firstaddress" and "Address" or are they functions of some kind? i dont
understand the purpose of this line.)
"Do" (tating if the number 2 is found)
c.value=5 (replaces with the number 5)
Set c = .FindNext(c) (finds next)
Loop While Not c Is Nothing And c.Address < firstAddress (lost here too)

and if "c.Address" and "firstAddress" are variables what would they cells?
whay im searching for?

im just trying to figure out how to add this into my code.





"Bob Phillips" wrote:

Look up Find and FindNext in VBA help, it will save the loops and you can do
part matches.

--
__________________________________
HTH

Bob

"JBurlison" wrote in message
...
Hello im new to excel VBA i come from a strong Access VBA backround here
is
what im tring to do:

Im Trying to search for something on another sheet and copy it over to the
search sheet as the search results.

For the search id like it to return anything that has for example the word
"test" in it

so if i put "Test" in the search box i want it to recongnize things like
"Testing1", "initial Tests", "Test Name 1". ect..

if it has "test" anywhere in the cell i want it to return.

this only dose exact maches. any idea how i can get it to do this?

Now i was told about a find function im not sure how to implament it. i
looked up the function and im a little confused on it.

heres another help thread i posted it has the excel file.
http://www.access-programmers.co.uk/...099#post805099

im using excel 2003

Code:

Sub clickSearch()
    Dim Row As Integer
    Dim Col As Integer
    Dim RowCopy As Integer
    Dim ColCopy As Integer
    Dim Copy As Integer
    Dim CopyCellA As String
    Dim CopyCellB As String
    Dim CopyCellC As String
    Dim SearchFor
    Dim ClrRg
'Clears the search results fields
    Set ClrRg = Union(Range("A2:A1000"), Range("B2:B1000"),
Range("C2:C1000"))
    ClrRg.Clear
'States what you are searching for (via the search box)
    SearchFor = Cells(4, 6)
    Copy = 1
    RowCopy = 1
    ColCopy = 1
    Row = 2
    Col = 1


RunColA:
'Clears any copied infromation
    CopyCellA = ""
    CopyCellB = ""
    CopyCellC = ""
'Checks the cell for the search information, then checks the collum it is
currently in to copy and pase the correct information
    If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then
            If Col = 1 Then
                CopyCellA = Sheets("ImmageLocations").Cells(Row, Col)
                CopyCellB = Sheets("ImmageLocations").Cells(Row, Col + 1)
                CopyCellC = Sheets("ImmageLocations").Cells(Row, Col + 2)
            Else
                If Col = 2 Then
                    CopyCellA = Sheets("ImmageLocations").Cells(Row, Col -
1)
                    CopyCellB = Sheets("ImmageLocations").Cells(Row, Col)
                    CopyCellC = Sheets("ImmageLocations").Cells(Row, Col +
1)
                Else
                    If Col = 3 Then
                        CopyCellA = Sheets("ImmageLocations").Cells(Row,
Col
- 2)
                        CopyCellB = Sheets("ImmageLocations").Cells(Row,
Col
- 1)
                        CopyCellC = Sheets("ImmageLocations").Cells(Row,
Col)
                    End If
                End If
            End If
        If Col = 1 Then
            Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellA
            Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellB
            Sheets("Search").Cells(RowCopy + Copy, Col + 2) = CopyCellC
        Else
            If Col = 2 Then
                Sheets("Search").Cells(RowCopy + Copy, Col - 1) = CopyCellA
                Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellB
                Sheets("Search").Cells(RowCopy + Copy, Col + 1) = CopyCellC
            Else
                If Col = 3 Then
                    Sheets("Search").Cells(RowCopy + Copy, Col - 2) =
CopyCellA
                    Sheets("Search").Cells(RowCopy + Copy, Col - 1) =
CopyCellB
                    Sheets("Search").Cells(RowCopy + Copy, Col) = CopyCellC
                End If
            End If
        End If
'Moves to the next Row
        Copy = Copy + 1
        Row = 1 + Row
        GoTo RunColA
    Else
        Row = 1 + Row
'Checks to see if it has searched all fields in that collum, if so resets
rows and moved to the next collum
        If Sheets("ImmageLocations").Cells(Row, Col) = "" Or
IsNull(Sheets("ImmageLocations").Cells(Row, Col)) Then
            Col = 1 + Col
            Row = 2
            If Col = 4 Then
                GoTo Endsub
            Else
                GoTo RunColA
            End If
        Else
            GoTo RunColA
        End If
    End If
Endsub:
End Sub



if you can sift thrugh the mess here is where im having my problem:

If Sheets("ImmageLocations").Cells(Row, Col) Like SearchFor Then


the "Like" function is not the correct use here im told i need to use the
find function.

this code works but only exact matches. (even case)

i need case not to be a issue.











All times are GMT +1. The time now is 09:18 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com