Macro para copiar datos de una hoja a otra

Bueno este es el macro que hice, me copia los datos de la "hoja factura" pero me los manda mal a la "hoja acumulador" me los pone mezclados:
Sub asi()
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("F3").Copy
Worksheets("ACUMULADO").Range("e65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("F2").Copy
Worksheets("ACUMULADO").Range("f65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("c4").Copy
Worksheets("ACUMULADO").Range("g65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("c5").Copy
Worksheets("ACUMULADO").Range("h65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("f24").Copy
Worksheets("ACUMULADO").Range("i65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Worksheets("FACTURA").Range("b10:F19").Copy
Worksheets("ACUMULADO").Range("E65536:I65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Espero que me puedan ayudar, ya que creo que me estoy cofundiendo en algo pero no se que es..

1 Respuesta

Respuesta
1
¿Deseas pasar todos los datos de la hoja Factura a la hoja Acumulador? Me puedes especificar que deseas hacer por favor.
Con mucho gusto te ayudare, solo especifica bien de donde quieres extraer los datos y a donde los quieres pegar, otra cosa me puedes dar de que celda a que celdas abarcan tus registros.
Hola rponcel, primero que nada te doy gracias por interesarte y ayudarme a resolver mi cuestión.
Bueno pasemos a lo nuestro, si necesito pasar datos de la "hoja factura" a la "hoja acumulador", el tema es así: yo tengo el diseño del formulario de una factura en la "hoja factura" la cual la voy utilizando constantemente( facturo imprimo y borro, siempre hago este procedimiento), lo que quiero adicionar ahora es la captación de los datos y almacenarlos en la "hoja acumulador" para llevar estadísticas.
Bien los datos que quiero captar de la "hoja factura" son los siguientes:
F2 QUE SERIA EL NUMERO DE FACTURA;
F3 LA FECHA DE LA FACTURA;
C4 NUMERO DE CLIENTE;
C5 NOMBRE DEL CLIENTE;
F24 ES EL TOTAL DE LA FACTURA;
Y el rango b10:f19 que seria: cantidad, código, detalle del articulo, precio unitario y precio total.
Y deseo ir guardando los datos de las sucesivas facturas en la "hoja acumulador" de la siguiente manera:
Quiero que los datos de las facturas se vayan cargando una de bajo de la otra, de forma tal que no se vayan super poniendo, que solamente copie valores no fórmulas.
F2 de la "hoja factura" quiero que vaya a la columna "f" de la "hoja acumulador"
f3 de la "hoja factura" quiero que vaya a la columna "e" de la "hoja acumulador"
c4 de la "hoja factura" quiero que vaya a la columna "g" de la "hoja acumulador"
c5 de la "hoja factura" quiero que vaya a la columna "h" de la "hoja acumulador"
f24 de la "hoja factura" quiero que vaya a la columna "i" de la "hoja acumulador"
Y luego debajo de estos datos que copie: la cantidad, el código, el detalle, precio unitario y precio total, esto representa cada renglón de la factura, DE ESTA MANERA EL RANGO B10:F19 DE LA "HOJA FACTURA" QUIERO QUE VAYA AL RANGO COLUMNAS E:I "DE LA "HOJA ACUMULADOR"
Desde ya te agradezco el tiempo que le dedicastes a esta pregunta y tu ayuda, un abrazo nponcel
Te dejo este código
Sheets("hoja_origen").Select
Range ("rango a copiar").Select
Selection.Copy
Sheets("hoja_destino").Activate
Range("celda_destino").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Podemos seguir trabajando en ello :)
Hola rponcel estuve probando tu macro, lo cargue en visual basic de excel en un libro nuevo para ver como funcionaba y también en mi archivo de excely no pude hacerlo andar, me tira error 400, lo revise y no le encontré nada, te muestro como la use para que veas si me estoy equivocando en algo...
Sub rponcel()
Sheets("factura").Select
Range ("B10:F19").Select
Selection.Copy
Sheets("ACUMULADOR").Activate
Range("E2:I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
No se si pueda llegar a influir el echo que tenga ms office 2003, te agradezco el tiempo que me dedicas y te pido si me podes decir como hago para que funcione ya que hice como me dijiste y no anduvo.. espero tu respuesta un abrazo
Revisa con los siguientes cambios por favor :)
Sub rponcel()
Sheets("factura").Select 'hoja origen
Range("B10:F19").Select 'selecciona rango
Selection.Copy
Sheets("Sheet1").Select 'hoja destino
Range("E2").Select 'celda destino, esquina a partir de donde se pegara la tabla
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
Revisa que los nombres de tus hojas estén escritos de manera idéntica para que no exista problema alguno, además te dejo el siguiente link donde podrás consultar las diferentes formas de seleccionar tus datos y hacer un poco de manipulación de ellos.
http://support.microsoft.com/kb/291308/es
Hola me sigue tirando error el macro me pasaste, te pido si me podrías enviar un ejemplo por mail con el código aplicado, así veo como funciona no se si te comente y si puede influir en algo pero tengo ms office 2003, te doy mi casilla de correo: [email protected]
Vía electrónica te mando el archivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas