Como reducir tiempo ejecución de macro
Hola:
Tengo una macro que inserta una fórmula en una serie de celdas; la cantidad de celdas en la que se inserta esta fórmula viene a ser de 400, todas en la misma hoja el código que he diseñado es el siguiente:
Dim i As Variant
For i = 5 To 65
Sheets("Planificación").Cells(i, "N").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "AG").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "AZ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "BS").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "CL").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "DE").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "DX").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "EQ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "FJ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "P").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C[-2], R[-1]C[-4]), Turnos, 3, FALSE)),"""", IF(R[-1]C[-2]<>"""", VLOOKUP(CONCATENATE(R[-1]C[-2], R[-1]C[-4]), Turnos, 3, FALSE),""""))"
i = i + 1
Next
End If
End Sub
¿Se puede acortar el tiempo de ejecución de esta macro y simplificar el código? Ya que el tiempo que tarda en ejecutar la macro sobrepasa los dos minutos.
Lo que quiero es insertar la fóomula en las celdas 5,7,9,11,13... Hasta la 65 de la columna N lo mismo en la columna AG, columna AZ... Y así hasta un total de 12 columnas.
Gracias
Tengo una macro que inserta una fórmula en una serie de celdas; la cantidad de celdas en la que se inserta esta fórmula viene a ser de 400, todas en la misma hoja el código que he diseñado es el siguiente:
Dim i As Variant
For i = 5 To 65
Sheets("Planificación").Cells(i, "N").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "AG").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "AZ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "BS").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "CL").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "DE").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "DX").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "EQ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "FJ").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE)),"""", IF(R[-1]C<>"""", VLOOKUP(CONCATENATE(R[-1]C, R[-1]C[-2]), Turnos, 2, FALSE),""""))"
Sheets("Planificación").Cells(i, "P").FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(CONCATENATE(R[-1]C[-2], R[-1]C[-4]), Turnos, 3, FALSE)),"""", IF(R[-1]C[-2]<>"""", VLOOKUP(CONCATENATE(R[-1]C[-2], R[-1]C[-4]), Turnos, 3, FALSE),""""))"
i = i + 1
Next
End If
End Sub
¿Se puede acortar el tiempo de ejecución de esta macro y simplificar el código? Ya que el tiempo que tarda en ejecutar la macro sobrepasa los dos minutos.
Lo que quiero es insertar la fóomula en las celdas 5,7,9,11,13... Hasta la 65 de la columna N lo mismo en la columna AG, columna AZ... Y así hasta un total de 12 columnas.
Gracias
Respuesta de Elsa Matilde
1