Problemas con macro: como hacer una orden seriada en bucle

Estoy haciendo una macro pero debido a mi desconocimiento necesito ayuda urgente.

En negrita he puesto las ordenes que cambian en la macro. No sé si necesito una orden que automáticamente me evite tener que copiar y pegar todas las instrucciones cambiando sucesivamente las líneas que varían.

Muchísimas gracias por todo por anticipado.

Saludos

Macro:

Sub dris()

'

' Dris Macro

'

'

Sheets("Hoja2").Select

Range("B2:F2").Select

Selection.Copy

Sheets("MACRO-nutrientes").Select

Range("C5").Select

ActiveSheet.Paste

Sheets("MACRO-nutrientes").Select

Range("C26:G26").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("dris").Select

Range("A2").Select

ActiveSheet.Paste

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Hoja2").Select

Range("b3:F3").Select

Selection.Copy

Sheets("MACRO-nutrientes").Select

Range("C5").Select

ActiveSheet.Paste

Sheets("MACRO-nutrientes").Select

Range("C26:G26").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("dris").Select

Range("A3").Select

ActiveSheet.Paste

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Hoja2").Select

Range("b4:F4").Select

Selection.Copy

Sheets("MACRO-nutrientes").Select

Range("C5").Select

ActiveSheet.Paste

Sheets("MACRO-nutrientes").Select

Range("C26:G26").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("dris").Select

Range("A4").Select

ActiveSheet.Paste

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

End Sub

Respuesta
1

Prueba con esta macro

Sub dris()
filas = Sheets("hoja2").Range("b2").CurrentRegion.Rows.Count
Set datos = Sheets("hoja2").Range("b2:f" & filas)
With datos
    For i = 1 To filas
        .Rows(i).Copy
        Sheets("MACRO-nutrientes").Range("C5").PasteSpecial
        Sheets("MACRO-nutrientes").Range("C26:G26").Copy
        Sheets("dris").Range("A3").Rows(i).PasteSpecial
    Next i
End With
Set datos = Nothing
End Sub

1 respuesta más de otro experto

Respuesta
1

En el video 11 de mi canal trato el tema (evitar seleccionar antes de copiar, pegar, etc).

Tu código se reducirá bastante. Luego me indicarás si necesita de algún otro ajuste. Si el rango debe ser tomado de otras variables, etc.

Sdos.

Elsa

https://www.youtube.com/playlist?list=PLrhlyizWZzOERwRMxIIy-BTP-CyXh_K5N 

¡Gracias! 

Muchas gracias Elsa,

Te agradecería si pudiera pasarme la macro terminada con el cambio que me propone.

Saludos

Mercedes

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas