Copiar de un libro a otros datos de diferentes celdas en forma de inventario

Tengo 2 archivos de Excel en los cuales deseo que se copien ciertos datos de uno al otro.

Coloque un botón el cual copia uno de esos datos pero no los sigue organizando debajo de los ya copiados, por el contrario copia sobre el mismo dato.

Lo que deseo es que ese botón pueda copiar mas de un dato y aparte guarde los datos en el siguiente libro en forma de inventario es decir un dato bajo el que ya se grabo, te dejo la macro que estoy usando.

ActiveWindow.SmallScroll Down:=24
Range("A46").Select
Selection. Copy
Windows("CONSOLIDADO 2021.xlsx.xlsm").Activate
Range("B5").Select
ActiveSheet. Paste

Respuesta
3

Esta consulta se parece a la anterior. Debieras leer los comentarios que dejé allí para saber cuál es la instrucción que encuentra la primer fila disponible y como pasar cada campo. En este nuevo caso habrá que anteponer el nombre del libro.

Pero como hay tantas maneras de copiar/pegar datos, te dejo 3 ejemplos. Luego si necesitas ayuda para completar tu código tendrás que aclarar bien de qué modo necesitas el copiado.

En los siguientes ejemplos todas las macros tendrán el mismo código hasta llegar a la línea CASO ... y a continuación la imagen con el resultado obtenido.

CASO 1: copiar celdas discontinuas, pegando en una misma fila o no, que se obtiene previamente con la variable 'libre':

Sub CAROLINA()
'x Elsamatilde
'libros involucrados
Set wb1 = ActiveWorkbook                      'libro origen con la macro
Set wb2 = Workbooks("CONSOLIDADO_2021.xlsm")  'libro destino que ya se encuentra abierto
'hojas de cada libro
Set h1 = wb1.ActiveSheet      'hoja activa desde donde se copian los campos
Set h2 = wb2.Sheets(1)    '1er hoja del libro destino... ajustar
'se puede realizar el pase de a una celda x vez o por rango
'CASO 1: copiar celdas con diferentes modos de pegado (solo valores, con formatos, etc)
libre = h2.Range("A65536").End(xlUp).Row + 1
    'FECHA
    H1. Range("E3"). Copy
    H2.Range("A" & libre). PasteSpecial xlPasteValues
    'PRODUCTO
    H1. Range("E4"). Copy
    H2.Range("B" & libre). PasteSpecial xlPasteValues
'se puede incrementar la fila destino para otros campos, por ej:
h2.Range("B" & libre+1).PasteSpecial xlPasteValues
End Sub

CASO 2: se copia un rango pegando tal cual en hoja destino. El encabezado de la macro es igual en todos los casos.

'CASO 2: copiar un rango
libre = h2.Range("A65536").End(xlUp).Row + 1
h1.Range("A3:I8").Copy Destination:=h2.Range("A" & libre)     'copia tal cual el origen

CASO 3: se copia un rango pegando solo valores. En el ejemplo el rango es de 1 sola fila pero bien puede ser un rango de varias.

'CASO 3: solo valores de un rango
libre = h2.Range("A65536").End(xlUp).Row + 1
h1.Range("A5:K5").Copy
h2.Range("A" & libre).PasteSpecial xlPasteValues

Desde la sección Ejemplos de mi sitio podrás descargar otros libros que pueden ser de ayuda.

Sdos.

Elsa

Y aquí va tu macro ajustada y explicada paso a paso, la que te dará como resultado el CASO 2: copiando fórmulas y formatos según la imagen que dejé en respuesta anterior.

Sub muestra()
'rango a copiar
Range("A3:I8").Copy
'libro destino que debe estar abierto
Windows("CONSOLIDADO_2021.xlsm").Activate
'seleccionar la hoja destino
Sheets(1).Select
'pegar en primera fila libre hacia abajo
Range("A" & Range("B" & Rows.Count).End(xlUp).Row + 1).Select
ActiveSheet.Paste
'------------- se quedó en el libro consolidado
'para que no se quede en modo copiado
Application.CutCopyMode = False
End Sub

PD) Revisá el nombre de tu libro, estás acumulando extensiones ;)

Sdos!

1 respuesta más de otro experto

Respuesta
1

Puedes poner las celdas que quieres copiar. Solamente pusiste la celda A46.

Y a partir de cuál fila quieres pegar. Supongo que empieza en la fila 5, el siguiente pegado deberá ser en la fila 6.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas