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

Función "Buscar" en VBA Excel

Estas en el tema de Función "Buscar" en VBA Excel en el foro de Ofimática en Foros del Web. Tengo un archivo ("Workbook") en Excel con dos hojas ("Worksheets"): "Calculos" y "Datos" Estoy tratando de desarrollar una función que debería hacer lo siguiente: 1- ...
  #1 (permalink)  
Antiguo 09/06/2009, 16:07
 
Fecha de Ingreso: junio-2009
Mensajes: 1
Antigüedad: 14 años, 10 meses
Puntos: 0
Función "Buscar" en VBA Excel

Tengo un archivo ("Workbook") en Excel con dos hojas ("Worksheets"): "Calculos" y "Datos"

Estoy tratando de desarrollar una función que debería hacer lo siguiente:

1- Buscar en la Primera Columna de la Hoja "Datos", una fecha que se pasa como argumento de la función (la primera ocurrencia).
2- Devolver el valor de la celda hubicada 3 columnas a la derecha de la celda donde se encontró la fecha buscada.

Cualquier sugerencia es buena,

Gracias.
  #2 (permalink)  
Antiguo 09/06/2009, 22:11
Avatar de scabral  
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 93
Antigüedad: 16 años
Puntos: 3
Respuesta: Función "Buscar" en VBA Excel

Celda por celda hast encontrar el valor buscado, utiliza contador para guardar la linea. Devuelve la columna C. Debes implementar que corte cuando la celda está en blanco y devolver algún resultado si no hay ocurrencias.

Dim Contador as single
Contador = 1

Do while True
If Range("datos!A" & trim(str(contador))) = valorBuscado Then
Exit Do
Else
Contador = Contador + 1
End If
Loop

Resultado = Range("Datos!C" & trim(str(contador))

Saludos. Gustavo.
  #3 (permalink)  
Antiguo 11/06/2009, 05:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Función "Buscar" en VBA Excel

Este es una adaptación de uno que tengo y me funciona, con unos peros que te comento:
en mi caso, el valor de mi_array es mas largo, y aqui tengo una serie de valores concretos que quiero buscar.

Lo lee, y lo va buscado en el rango A1:A200 de la hoja "datos". Cuando lo encuentra, se activa, y luego con la opción ActiveCell.Offset(0,3).Value, con la variable "DATO", coge el valorq ue está 3 celdas a la derecha del encontrado.
Espero que te se util.

Dinos como te ha ido, y Cuando te funcione el código, pegalo para ir haciendo una "biblioteca" de subrutinas e ir creciendo.

s2


for n=1 to 200

mi_array = Array ("A1", "A2", "A3", "A4")

FECHA = mi_array(n)

Sheets("datos").Select
Range("A1:A200").Find(What:=FECHA, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
DATO = ActiveCell.Offset(0, 3).Value

next
__________________
Genética animal y veterinaria
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 17:07.