Find Method problem in Excel VBA....

I

Irmann

I have a problem about using find method in Excel VBA.
Here is my program:-
_________________________________________________________________

Private Sub CommandButton2_Click()

Dim MyProduct As Range
Product = Range("F8").Value
Set MyProduct =
ThisWorkbook.Sheets("Sheet2").Columns("E").Find(what:=Client,
LookAt:=xlWhole)

ActiveSheet.Cells(8, 8).Value = MyProduct.Columns("G").Value

End Sub
_____________________________________________________________________
how can I pull data at Columns(G) to Cells(8,8)
the program I wrote ' ActiveSheet.Cells(8, 8).Value =
MyClient.Columns("G").Value ' , give me error... Run-time error '91'
Object variable or With block variable not set
 
B

Bernie Deitrick

Irmann,

Your line

ActiveSheet.Cells(8, 8).Value = MyProduct.Columns("G").Value

uses relative addresssing (this part, psecifically: MyProduct.Columns("G").Value) , which means
that the code will pull the value from 7 columns to the right of MyProduct (a cell in column E) - so
the value is from column K. If you really want the value from column G, then use

ActiveSheet.Cells(8, 8).Value = MyProduct.Offset(0,2).Value

HTH,
Bernie
MS Excel MVP
 
I

Irmann

Thank You Bernie Deitrick for the reply.

That helping me a lot. :)

Bernie, can you show me how to program my previous program by using
'For....Next' method.

because i don't want just find Range("F8") only. I want the program ca
looping from Range("F8") to Range("F100") and the same time can pul
difference data.

Below is the new program that i use 'For....next' method(don't know it
right or not) :-

Private Sub CommandButton2_Click()

Dim MyProduct As Range
For i = 7 To 100
Product = Cells(i + 1, 6).Value 'Range("F8") = Cells(8, 6)
Set MyProduct = ThisWorkbook.Sheets("Sheet2").Columns("E").Fin
_(what:=Client, LookAt:=xlWhole)
Next

ActiveSheet.Cells(i + 1, 8).Value = MyProduct.Offset(0, 2).Value

End Sub
 
B

Bernie Deitrick

Irmann,

This is how you would loop. I changed the item being found from Client to Product - otherwise, you
would simply find the same thing each time. I'm not sure if that is what you want, but you should
be able to get the idea....

Dim MyProduct As Range
For i = 8 To 100
Product = Cells(i, 6).Value 'Range("F8") = Cells(8, 6)
Set MyProduct = ThisWorkbook.Sheets("Sheet2").Columns("E").Find _
(what:=Product, LookAt:=xlWhole)
Cells(i, 8).Value = MyProduct.Offset(0, 2).Value
Next i


Without looping:

With Range("H8:H100")
.Formula = "=INDEX(Sheet2!G:G,MATCH(F8,Sheet2!E:E,False))"
.Value = .Value
End With

HTH,
Bernie
MS Excel MVP
 
I

Irmann

Thanks Bernie,

The program you give it to me run smoothly. The program run(looping) i
= 8 To 100. It find the same name(product) in sheet1 at sheet2. When it
find the same product name at sheet2, it pull data at column 'E' to
Cells(i, 8) in sheet1. The problem is, when it can't find the same
product name, the program give me error like it can't jump to the Next
i.

Bernie, what is the program that can jump to the Next i after it can't
find the same product name.

### Bernie can you give me your email address. I want give you my excel
file.

Thanks,

IRmann
 
B

Bernie Deitrick

Irmann,

To check that the value is actually found before processing:

For i = 8 To 100
Product = Cells(i, 6).Value 'Range("F8") = Cells(8, 6)
Set MyProduct = ThisWorkbook.Sheets("Sheet2").Columns("E").Find _
(what:=Product, LookAt:=xlWhole)
If Not MyProduct Is Nothing Then Cells(i, 8).Value = MyProduct.Offset(0, 2).Value
Next i

HTH,
Bernie
MS Excel MVP
 
I

Irmann

Thank You so much Bernie for the code you gave it to me..... Its reall
helps. ;-) . Thanks again so so much.
coding that can pull data between two difference sheet in the sam
workbook using Find method. Can we do it with difference workbook?give me an error.

thanks,

IRmann
 
I

Irmann

Thank you Bernie Deitrick for helping me solve my excel VBA question and
give me some ideal. Thanks again.. God bless you

I’m try to automated 3 excel file that can pull some data by using Find
method. The coding succeeds. Below is the coding:-

Private Sub CommandButton2_Click()

Dim MyProduct As Range

For i = 5 To 100
Product = Cells(i, 6).Value 'Range("F8") = Cells(8, 6)
Set MyProduct = Workbooks("January KLM NPI
ReviewIR.xls").Worksheets("Sheet1").Columns("E").Find(what:=Product,
LookAt:=xlWhole)
If Not MyProduct Is Nothing Then Cells(i, 8).Value =
MyProduct.Offset(0, 4).Value
If Not MyProduct Is Nothing Then Cells(i, 17).Value =
MyProduct.Offset(0, 6).Value
Next i

End Sub



This thread SOLVE
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top