¿Qué código de VB usar para que la macro no pase al siguiente paso si no ha acabado el anterior?
Tengo el siguiente código:
Sub Macro1()
' Para actualizar las tablas dinamicas
ActiveWorkbook. RefreshAll
End Sub
Sub Macro2()
'Optimizar
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
'Activo hoja Plantilla
Sheets("Plantilla").Select
' Para transformar las columnas 2 y 8 que tienen formato texto en número:
loca = False
i = 5
Do Until loca = True
loca = IsEmpty(Worksheets("Plantilla").Cells(i, 2))
Worksheets("Plantilla").Cells(i, 2).Value = Worksheets("Plantilla").Cells(i, 2) * 1
Worksheets("Plantilla").Cells(i, 8).Value = Worksheets("Plantilla").Cells(i, 8) * 1
i = i + 1
Loop
'Para reemplazar los # por Ñ:
ActiveSheet.Cells.Replace What:="#", Replacement:="Ñ", LookAt:=xlPart
'Activo hoja Bajas
Sheets("Bajas").Select
' Para transformar las columnas 2 y 8 que tienen formato texto en número:
loca = False
i = 5
Do Until loca = True
loca = IsEmpty(Worksheets("Plantilla").Cells(i, 2))
Worksheets("Bajas").Cells(i, 2).Value = Worksheets("Bajas").Cells(i, 2) * 1
Worksheets("Bajas").Cells(i, 8).Value = Worksheets("Bajas").Cells(i, 8) * 1
i = i + 1
Loop
'Para reemplazar los # por Ñ:
ActiveSheet.Cells.Replace What:="#", Replacement:="Ñ", LookAt:=xlPart
'Activo hoja Plantilla
Sheets("Plantilla").Select
'Optimizar
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub
Sub Macro3()
Call Macro1
Call Macro2
End Sub
El problema es que antes de que acabe de ejecutarse la Macro1 (actualiza las tablas del documento)se ejecuta la Macro2, por lo que necesito poner algo para que primero se ejecute la Macro1 y cuando esta acabe empiece la Macro2.