Foros del Web » Soporte técnico » Ofimática »

Problema Opcion Find VBA Excell

Estas en el tema de Problema Opcion Find VBA Excell en el foro de Ofimática en Foros del Web. Tengo un problema con una subrutina que no consigo solucionar. Trabajando en la Hoja 1, Quiero que al buscar un valor, por ejemplo, de la ...
  #1 (permalink)  
Antiguo 24/09/2008, 10:30
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Problema Opcion Find VBA Excell

Tengo un problema con una subrutina que no consigo solucionar.
Trabajando en la Hoja 1, Quiero que al buscar un valor, por ejemplo, de la celda H1, en la columna A de la hoja 2, y que me devuelva el de la derecha de este.
No encuentro con que función hacerlo, porque con Cells.Find no lo consigo.
Alguien me podria ayudar?
Gracias

La subrutina que he hecho es esta, pero no me funciona bien
Buscar_frecuencias()

Sheets("Hoja2").Select
Range("A6:A55").Select
Cells.Find ("12")
Set frec = ActiveCell.Offset(0, 1)
frec1 = Val(ActiveCell.Offset(0, 1))
Sheets("Hoja1").Select
Cells(2, 12).Value = frec1

End Sub
  #2 (permalink)  
Antiguo 24/09/2008, 13:26
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Problema Opcion Find VBA Excell

Hola! buddyk9
Te muestro tres formas de hacer lo mismo, aunque no son las únicas:

MsgBox Sheets("Hoja2").[A:A].Find(What:=[H1], LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1)

MsgBox Range("Hoja2!B" & WorksheetFunction.Match([H1], Sheets("Hoja2").[A:A], 0))

MsgBox WorksheetFunction.VLookup([H1], Sheets("Hoja2").[A:B], 2, False)



Saludos, Cacho.
  #3 (permalink)  
Antiguo 25/09/2008, 10:16
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema Opcion Find VBA Excell

Gracias! parece que funciona!

Mi duda es si sólo busca en el rango especificado (A5:A56) (como así quiero)

¿como tengo que hacerlo? Soy principiante.

  #4 (permalink)  
Antiguo 25/09/2008, 10:32
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Problema Opcion Find VBA Excell

No entiendo cual es tu duda, ¿podrías ampliarla?
  #5 (permalink)  
Antiguo 25/09/2008, 10:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema Opcion Find VBA Excell

Tengo dos hojas, y en la hoja 1 calculo una fórmula y obtengo un valor de una variable, por ejemplo, C1
En la hoja 2 tengo una tabla de frecuencia, de forma que por ejemplo, en la columna A, rango A5:A55 van los distintos valores que puede tomar C1 (supongamos que es edad). en las columnas B, C y D, por ejemplo, son % de gente de esa edad en Madrid, Valencia, Barcelona
no se como podría hacerlo para que, estando en la hoja 1, dando un valor a C1, vaya a buscar el valor de C1 a hoja2, dandome el valor corresondiente de las columnas B, C o D. Esto último creo que se haría con un ActiveCell.Offset(0, 1
No lo consigo.....
Gracias
  #6 (permalink)  
Antiguo 25/09/2008, 12:09
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Problema Opcion Find VBA Excell

El tercero de los ejemplos que te dí, se basa en la fórmula BUSCARV() del Excel.

De hecho, y por lo que estás describiendo, no necesitas ninguna macro para hacerlo sino -y simplemente- utilizar la fórmula BUSCARV().

Te sugiero que veas en la ayuda del programa como se utiliza... y entenderás por qué te digo que no necesitas una macro para lo que estás buscando.

Saludos, Cacho.
  #7 (permalink)  
Antiguo 26/09/2008, 10:29
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema Opcion Find VBA Excell

Gracias Cacho,
La pregunta de como se realizaria en Visual, es porque estoy intentando de automatizar en visual una hoja de excel con mas opciones y aplicaciones.
En esta hoja, utilizo esa función, pero no se cual es la equivalente en Visual Basic, si la sintaxis.
Soy novato y no me aclaro con la ayuda de VBA.
Me aclaro un poco con la vuestra :)

Gracias

pd: podrías ayudarme con lo que planteo anteriormente? ¿se entiende en que consiste?
  #8 (permalink)  
Antiguo 26/09/2008, 11:18
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Problema Opcion Find VBA Excell

a) Enciende la grabadora de macros
b) Realiza manualmente las operaciones y fórmulas que quieras incorporar
c) Apaga la grabadora y comienza a estudiar el código generado a partir de la ayuda del propio VBA.

Es así como se comienza, mi amigo.
Saludos, Cacho.
  #9 (permalink)  
Antiguo 28/09/2008, 04:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema Opcion Find VBA Excell

Al final lo que buscaba me ha funcionado con esta subrutina, que la pego por si puede ser util a alguien.
Busca un valor de la hoja1 (variable H1) en el rango A5:A55 de la hoja2, y cuando lo encuentra, devuelve el valor de la celda de su derecha ( ActiveCell.Offset(0, 1).Value ) como variable frec en la hoja 1.

Sub Calculo()

Dim H1 As String, frec As String

Sheets("Hoja1").Select
H1 = 12
Sheets("Hoja2").Select
Range("A5:A55").Find(What:=H1, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
frec = ActiveCell.Offset(0, 1).Value

Sheets("Hoja1").Select
Cells(2, 2).Value = frec

End Sub

Gracias por vuestra ayuda

Última edición por buddyk9; 28/09/2008 a las 04:32 Razón: dar las gracias a quien me ha ayudado
  #10 (permalink)  
Antiguo 28/09/2008, 10:27
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Problema Opcion Find VBA Excell

Felicitaciones: buen intento. Hasta la próxima, Cacho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:05.