Macro: Que arme Base de datos, copiando entre hoja

Quiero ser simple: Explico, Arme una planilla que me imprime Recibos de pagos.
Lo que quiero hacer es que al usar el Macro que me imprime la HojaX que son los resultados del recibo y aparte de imprimir me cambia la numeración del recibo.
Quiero que TAMBIÉN me guarde datos de la hoja que imprime en otra hoja armando una base de datos de historia de recibos.
O sea: Hoja1 se llama "recibo", Hoja2 se llama "BDhistoria"
Lo que quiero es que al usar la macro me copie datos de "recibo" a "BDhistoria:
Ejemplo: En "BDhistoria", en la fila 1 ya tengo puestos varios nombres en cada columna como rótulos, A1 "Número", B1 "Fecha", en C1 "Cliente, y así...
Lo que quiero es que al copiar el primer dato me lo ubique en la próxima Fila libre, y el resto de los datos sobre esa misma fila.
a) Que copie de la hoja "recibo" fil y col "H3", (que seria el número), en la hoja "BDhistoria" en la próxima fila disponible en la columna A
b) Que también copie de la hoja "recibo" fil y col "D2", (que seria la fecha), en la hoja "BDhistoria" en la columna B, pero en la misma fila que había copiado el dato anterior.
Y así que copie varios datos y que el próximo cambio de fila sea al usar otra vez la macro.

1 Respuesta

Respuesta
1
Te paso el código que debieras agregar a tu macro.
Esta parte se encarga de la transferencia de datos de una hoja a otra
Worksheets("BDhistoria").Select
 Range("a60000").End(xlUp).Offset(1, 0).Select
 ActiveCell = Worksheets("Recibos").Range("H3").Value
 ActiveCell.Offset(0, 1) = Worksheets("Recibos").Range("D2")
 ActiveCell.Offset(1, 0).Select
 Worksheets("Recibos").Select
En los renglones que dejo en blanco podes agregar los demás datos del recibo. Por ej. si en la hoja Recibos tenés al Cliente en la celda C4 y en la hoja BDhistoria la tercer columna corresponde al cliente, entonces agregás:
ActiveCell.Offset(0, 2) = Worksheets("Recibos").Range("C4")
El Offset(x, y) indica el desplazamiento respecto de la celda activa medido en filas y columnas. Por ej, si dice Offset(0,5) se trata de la misma fila (desplazamiento cero) y 3 columnas a la derecha).
Espero que te sea útil, cualquier cosa me decís si necesitás aclarar algo.
Quiero ser simple: Explico, Arme una planilla que me imprime Recibos de pagos.
Lo que quiero hacer es que al usar el Macro que me imprime la HojaX que son los resultados del recibo y aparte de imprimir me cambia la numeración del recibo.
Quiero que TAMBIÉN me guarde datos de la hoja que imprime en otra hoja armando una base de datos de historia de recibos.
O sea: Hoja1 se llama "recibo", Hoja2 se llama "BDhistoria"
Lo que quiero es que al usar la macro me copie datos de "recibo" a "BDhistoria:
Ejemplo: En "BDhistoria", en la fila 1 ya tengo puestos varios nombres en cada columna como rótulos, A1 "Número", B1 "Fecha", en C1 "Cliente, y así...
Lo que quiero es que al copiar el primer dato me lo ubique en la próxima Fila libre, y el resto de los datos sobre esa misma fila.
a) Que copie de la hoja "recibo" fil y col "H3", (que seria el número), en la hoja "BDhistoria" en la próxima fila disponible en la columna A
b) Que también copie de la hoja "recibo" fil y col "D2", (que seria la fecha), en la hoja "BDhistoria" en la columna B, pero en la misma fila que había copiado el dato anterior.
Y así que copie varios datos y que el próximo cambio de fila sea al usar otra vez la macro.
No me tomó el renglón en blanco. Te numero las líneas de código para aclarar la idea (no escribas los números en tu macro porque no va a funcionar)
1- Worksheets("BDhistoria").Select
2- Range("a60000").End(xlUp).Offset(1, 0).Select
3- ActiveCell = Worksheets("Recibos").Range("H3").Value
4- ActiveCell.Offset(0, 1) = Worksheets("Recibos").Range("D2")
5- ActiveCell.Offset(1, 0).Select
6- Worksheets("Recibos").Select
Cuando me refería al espacio que dejaba en blanco quería decir que podrías agregar más líneas de código entre las líneas 4 y 5
Diego, mil gracias. Hace años discutía con gente que decía que no se podía.
El excel y este Site Web son una masa.
Mil gracias, funciona perfecto, y tu explicación super clara.
Jor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas