Rellenar celdas vacías con un dato determinado

Solicito ayuda ante un macroatasco: tengo elaborada una macro que actúa de la siguiente forma:
1-Crea un nuevo libro con una hoja en blanco (hoja "listado resumen").
2-Lee los archivos excel existentes en una carpeta.
3-Progresivamente (y sobre todos los archivos existentes en la carpeta), hace lo siguiente: abre el primer archivo; copia todas las filas con datos del primer archivo (siempre van a ser las columnas desde la "A" hasta la "L" y a partir de la fila 4) y los pega al comienzo de la hoja "listado resumen". Abre el segundo fichero; copia todas las filas con datos (en este caso y para los sucesivos ficheros desde la fila 5 -dado que la fila 4 contiene los títulos ya copiados con el primer fichero- y siempre en las columnas desde la "A" hasta la "L") y las pega en la hoja "listado resumen" a continuación de los datos antes pegados, etc.
El problema que no logro superar es el siguiente: tendría que añadir en la columna "M" de la hoja "listado resumen" el valor (un nombre) existente en la celda "A1" de cada fichero (dato único y común para cada fichero que se copia).
Por ejemplo: en el primer fichero la celda "A1"= "Pepe". Si el fichero tiene datos entre las filas 4 y 50 (columnas desde "A" hasta "L", al pegar los datos en la hoja "listado resumen", se deberían rellenar las celdas "M2" hasta la "M46" con el valor "Pepe" (la fila 1 tendría los títulos. En el segundo fichero p. Ej. Serán 15 filas y el valor de "A1" sería "Manolo" (a rellenar en la columna "M". Y así sucesivamente.
Reseñar (importante) que la única columna que siempre tiene datos es la "A" (las demás pueden estar en blanco).
Muchas gracias, pero es que no logro avanzar.

1 Respuesta

Respuesta
1
Primero deberías copiar los datos del archivo (cosa que ya estás haciendo), luego vas a tener la celda "Desde" (que la debés tener de alguna forma pues es a donde estás copiando los datos) y la celda "Hasta" (que es hasta donde pegar los datos, el código debería quedar más o menos así (lo que está en Negrita/Cursiva es Pseudocódigo)
Cells(Desde, 1).PasteValues ...
Hasta = Cells(65500, 1).End(xlUp). Row 'con esto averigúas hasta donde llega
Range(Cells(Desde,13),Cells(Hasta,13))=workbooks(tuArchivo). Sheets(tuHoja). Range("A1") 'acá es lo que pegás en la columna M (13), una forma mas fácil es cuando estás en el archivo dejar el valor en una variable auxiliar y usarla ahora algo mas o menos a
varAux = activeSheet.Range("A1")
ActiveSheet. Copy...
Workbooks("Nuevo"). Activate 'acá pasas a tu archivo "resumen"
Cells(Desde, 1). PasteValues ...
Hasta = Cells(65500, 1).End(xlUp). Row 'con esto averigúas hasta donde llega
Range(Cells(Desde,13),Cells(Hasta,13))=varAux
Desde = Hasta + 1  'de paso te sirve para calcular el nuevo valor donde quedarían los datos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas