Pregunta para Dante amor ¿Como puedo copiar datos a traves de un for?

Hola dante como puedo generar un for para que me copie los valores de las siguientes celdas del libro1 al libro2

Libro1

d15

d22:g22

d24:g24

m10:m14

z10:ab10

Que las copie al libro2 a través de un bucle

Libro2

l6:v6

h12:j12

Saludos dante

1 Respuesta

Respuesta
1

Pero no pusiste cuál es el destino de cada rango.

Una manera sencilla de hacer las copias es así:

Sub CopiarRangos()
'Por.Dante Amor
    'Datos del libro1
    Set l1 = Workbooks("Libro1")
    Set h1 = l1.Sheets("hoja1")
    'Datos del libro2
    Set l2 = Workbooks("Libro2")
    Set h2 = l2.Sheets("hoja1")
    h1.[d15].Copy h2.[d15]
    h1.[d22: g22].Copy h2.[d22]
    h1.[d24: g24].Copy h2.[d24]
    h1.[m10: m14].Copy h2.[m10]
    h1.[z10: ab10].Copy h2.[z10]
End Sub

Ahora que si quieres un ciclo, podría ser así:

Sub copiar()
'Por.Dante Amor
    '
    'Datos del libro1
    Set l1 = Workbooks("Libro1")
    Set h1 = l1.Sheets("hoja1")
    '
    'Datos del libro2
    Set l2 = Workbooks("Libro2")
    Set h2 = l2.Sheets("hoja1")
    '
    rangos = Array("d15", "d22: g22", "d24: g24", "m10: m14", "z10: ab10")
    destinos = Array("d15", "d22", "d24", "m10", "z10")
    '
    For i = LBound(rangos) To UBound(rangos)
        h1.Range(rangos(i)).Copy h2.Range(destinos(i))
    Next
End Sub

En ambos casos tienes que especificar cuál es la celda destino.

Saludos. Dante Amor

Recuerda valorar la respuesta.

.

d15    Destino libro2  l6

d22:g22  Destino libro2 m6:p6

d24:g24  Destino libro2 q6:t6

m10:m14  Destino libro2 u6:x6

z10:ab10  Destino libro2 h12:j12

todo eso en un for se podra??

Ya te puse la macro para el for

Solamente cambia esto

Destinos = Array("d15", "d22", "d24", "m10", "z10")

Por los destinos que quieras, quedaría así:

Sub copiar()
'Por.Dante Amor
    '
    'Datos del libro1
    Set l1 = Workbooks("Libro1")
    Set h1 = l1.Sheets("hoja1")
    '
    'Datos del libro2
    Set l2 = Workbooks("Libro2")
    Set h2 = l2.Sheets("hoja1")
    '
    rangos = Array("d15", "d22: g22", "d24: g24", "m10: m14", "z10: ab10")
    destinos = Array("l6", "M6", "Q6", "U6", "H12")
    '
    For i = LBound(rangos) To UBound(rangos)
        h1.Range(rangos(i)).Copy h2.Range(destinos(i))
    Next
End Sub

Saludos.Recuerda valorar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas