Buenos días a todos, me presento soy nuevo en el foro tengo algún conocimiento de office y espero ayudar en todo lo que pueda, lo que pasa que ahora en el trabajo estoy intentando hacer una macro pero no doy con la clave.
A ver si soy capaz de explicarme.
Necesito hacer una macro que copie datos de varios archivos excel y los copie en otro.
El problema que tengo es que los datos que quiero que copie estan siempre en la misma celda pero quiero que los copie en celdas diferente, por ejemplo, quiero que abra el archivo y copie la celda F1 en la primera celada vacia de la columna A y que copie de la G5 en la primera celda vacia de la columna B y asi con varias.
Alguna idea?
Muchisimas gracias de antemano.
En vez de utilizar copy/paste en VBA, simplemente asigna el valor a una variable.
Abres el archivo, lees el valor de la celda y lo adjudicas a una variable, así:
Set wb = Workbooks.Open(Filename:=PathName & Filename)
var = wb.sheets("hojaquequiero").cells(5,2).value
(var es una variable, hojaquequiero es el nombre de la hoja donde está el valor, y en el ejemplo estoy tomando el valor de la celda B5 --> fila 5, columna 2)
Finalmente, vuelves a tu libro y copias el valor en su sitio:
Thisworkbook.sheets("otrahoja").cells(45,6).value = var
(en este caso estoy pegando el valor de la variable var en la hoja del libro donde está el código que se llama otrahoja, en la celda F45)
Espero que sirva. Un saludo
Muchas gracias, pero entiendo que esta variable sirve solo para una hoja y yo lo quiero que lo haga en varias hojas con nombres diferentes, ¿servirá igual?
Sirve para un valor cada vez. Repite la acción tantas veces como haga falta, cambiando lo que necesites cada vez para apuntar al dato que necesites y para copiarlo en la celda que sea.
Vale gracias lo mirare, necesitaría algo más automático pero si no lo hay, me terdré que conformar con esto.
Gracias
Una vez lo programes, ya es automático. A lo mejor no me he explicado bien.
Lo que te propongo es que escribas un código que copie el dato y lo pegue en su sitio, luego copie el segundo y lo coloque dónde deba... Hasta que termine con todos los datos.