Macro en tablas de excel

Hola a todos.
Tengo una macro creada en un excel con varias tablas y fórmulas, que lo que hace es coge valores de un rango de una tabla Range("B57:D57") y me lo copia en otra tabla que crea unos resultados según unas fórmulas en otros rangos de una tabla. Esos resultados cada rango de 3 me los va copiando sucesivamente en posicones de otras tablas, hasta ahí bien.
Pero lo que quiero es que me coja automáticamente el siguiente rango de la primera tabla es decir el range("B58:D58"), me lo copie en la tabla de resultados y me vaya copiando los rangos de resultado en las siguientes posiciones de las distintas tablas.
Yo lo estoy haciendo cambiando a mano el número del rango en cada paso, así que tengo una tabla con 18 filas pues esta puesta 18 veces la función.
Os pongo mi macro y si alguien me puede ayudar os lo agradecería.
Un saludo.
Sub Seleccion()
'
' Seleccion Macro
'
' Acceso directo: CTRL+q
'
'    ActiveWindow.SmallScroll Down:=-15
' primera
    Range("B57:D57").Select
    Selection.Copy
    Range("B53").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E53:G53").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("E57").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H53:J53").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=21
    Range("E79").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=-15
    Range("K53:M53").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=42
    Range("E100").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=-42
    ActiveWindow.SmallScroll ToRight:=5
    Range("N53:P53").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll ToRight:=-5
    ActiveWindow.SmallScroll Down:=60
    Range("E121").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("q53:s53").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll ToRight:=-5
    ActiveWindow.SmallScroll Down:=60
    Range("E143").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        '    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-60

1 respuesta

Respuesta
1
Te haces una variable
Dim i as integer
i=57
entonces para el rango pones Range("B"+cstr(i)+":D"+cstr(i)).Select
Y si quieres haces otra variable para el 53 que también lo usas mucho

Añade tu respuesta

Haz clic para o