VBA: Copiar valores de celdas en otra hoja

Resuelto
Max49 -  
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

Estoy comenzando en VBA y estoy intentando
Me gustaría copiar los valores de un rango en otro rango pero en otra hoja. He encontrado varias soluciones para abordar mi problema, primero utilicé este código para hacer mi copiar y pegar:

Worksheets("Hebdo").Activate
Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Select
Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Copy

ActiveWorkbook.Sheets("GR1").Activate
ActiveWorkbook.Sheets("GR1").Range(Cells(5, 1), Cells(14, 3)).Select
ActiveWorkbook.Sheets("GR1").Paste

Este código me funcionaba perfectamente hasta que modifiqué el formato de mi tabla de Excel para imprimir mis tablas automáticamente. Ahora me encuentro copiando valores de celdas de tamaño 22 y pegándolos en celdas que deberían ser del tamaño 11.
Para ello, leí en este foro que es más simple realizar esta acción copiando solo los valores y no la celda completa utilizando la siguiente forma:

Range("A1:C5").value = Range("D6:G11").value

Aplicado a mi problema, esto sería:

Sheets("GR1").Range("A5:C14").Value = Sheets("Hebdo").Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Value

lig y col son dos variables integer que se han definido previamente.

Sin embargo, este código no funciona, me da un mensaje de error.

También leí que hay un método con .PasteSpecial, pero no sé cómo usarlo.

¿Alguien tendría una solución?

Atentamente

Max

2 respuestas

  1. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
     
    Hola,
    aparentemente tus superficies no son idénticas
    A5:C14 contiene 2 filas
    entonces
    Sheets("GR1").Range("A5:C14") = Sheets("Hebdo").Range(Cells(lig, col), Cells(lig +2, col + 2)).Value
    o
    Range(Cells(lig-1, col), Cells(lig +1, col + 2)).Value

    nota
    tenías 3 variables Lig1, Lig y col...
    no es necesario indicar .value en las celdas objetivo

    Michel
    0