Como buscar y traer datos con una macro?

Estoy elaborando un reporte que acumulara datos de archivos de 2 años, por lo cual me es casi obligatorio automatizarlo.

Decidí realizarlo por pasos primero la macro abre el archivo que elija el usuario, luego copia las hojas a la macro y cierra el archivo que se abrió.

Una vez que tengo todos los datos en el libro quiero que me traiga determinados datos que no siempre se ubican en la misma posición.

Mi idea es utilizar la función find para ubicar la posición del nombre que tengo de referencia que supongamos es "Operaciones TI", una vez que se donde esta quiero que me traiga los 5 datos que están a su derecha.

Basicamente seria hacer una formula tipo BuscarV, pero con una macro.

En resumen

Preciso buscar "Operaciones TI" que se encuentra en la hoja 4, obtener su rango

Y copiar las 5 celdas que estan a su derecha para pegarlas en la posicion a1 de la hoja 1.

1 Respuesta

Respuesta
1

1. ¿Los datos ya están en la hoja4?

2. ¿En qué columna quieres que se busque? ¿O quieres que busque en todas las columnas y que se traiga todo los datos que encuentre?

3. ¿En la hoja1 en cuál celda tienes lo que quieres buscar? Suponiendo que lo tienes en la celda B1, los datos encontrados deberían empezar en la fila 2, ó si vas a poner un encabezado en la fila 2, ¿entonces los datos empezarían en la fila 3?

Dante, muchas gracias por el tiempito que le pudieras brindar en este asunto.

1. Si, los datos ya están en la hoja 4

2. El dato no tiene una posición fija debo buscarlo en toda la hoja. Y en función de ese dato x quiero copiar sus 4 valores posicionados a su derecha.

3. En la hoja1 quiero que se peguen esos 4 valores en la celda b2, b3, b4 y b5

Cualquier otra información que pudiera brindar quedo a disposición.

Saludos

Perdona, pero estoy enredado, podrías enviarme un archivo con un ejemplo de lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Martin Lalo” y el título de esta pregunta.

Te anexo la macro

Sub TraerDatos()
'Por.Dante Amor
    Set h1 = Sheets("Seguimiento de Pendientes OPTI")
    Set h2 = Sheets("Ingresos Acumulados del Mes")
    Set b = h2.Columns("C").Find("Area de Sistemas - Operaciones TI", lookat:=xlWhole)
    If Not b Is Nothing Then
        H1.Cells(20, "C") = b.Offset(0, 1)
        H1.Cells(20, "D") = b.Offset(0, 2)
        H1.Cells(20, "E") = b.Offset(0, 3)
        H1.Cells(20, "F") = b.Offset(0, 4)
        H1.Cells(20, "G") = b.Offset(0, 5)
    End If
    MsgBox "Terminado"
End Sub

Saludos.Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas