Visual Basic para Aplicaciones - Problema con Find

Life is soft - evento anual de software empresarial
 
Vista:

Problema con Find

Publicado por Raymundo (1 intervención) el 16/03/2006 20:31:06
Hola TEngo un problema con un buscador que estoy haciendo, lo que requiero hacer es buscar un dato en un rango especifico de celdas pero no me funciona aqui les muestro el codigo:
Private Sub CommandButton1_Click()

On Error GoTo noencontro
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=Range(c2, f4005), LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Select
txtCodigo = ActiveCell
ActiveCell.Offset(0, 1).Select
txtDescripcion = ActiveCell
ActiveCell.Offset(0, 1).Select
txtUm = ActiveCell
ActiveCell.Offset(0, 1).Select
txtPrecio = ActiveCell
noencontro:
End Sub

no se como darle el rango especifico para que me muestre solo lo buscado
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con Find

Publicado por GabrielDR (12 intervenciones) el 23/03/2006 20:24:53
Yo lo que hago primero es seleccionar el rango, y luego hacer la busqueda, algo así

Private Sub CommandButton1_Click()

On Error GoTo noencontro

'1.- mover la celda activa hacia el inicio del bloque
Application.Goto ("R2C3") 'Fila (R-row)2 Columna (C-col) 3

'2.- Seleccionar el rango en posicion absoluta donde esta la celda
Range("c3:f401").Select

'2a.- si se quiere relativo desde la celda actual "a1" hasta el f401 "e400" por bloque.
'ActiveCell.Range("a1", "e400").Select

'3.- ya luego se hace la busqueda NOTA: El lookin no es para poner el rango, sirve para indicarle al find en donde si va a buscar en valores o en formulas (ve las opciones de Buscar en el menu)
Selection.Find(What:=Textbox1.Text, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate

'4.- todo lo que ponias aqui se puede sustituir de la siguiente forma
'Si suponemos que la busqueda dió algun resultado y se parte de la celda activa.
txtcodigo = ActiveCell.Offset(0, 1).Value
txtDescripcion = ActiveCell.Offset(0, 2).Value
txtUm = ActiveCell.Offset(0, 3).Value
txtPrecio = ActiveCell.Offset(0, 4).Value

noencontro:
End Sub

Suerte, dudas a mi correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar