Como acelerar una macro
Hola experto
Tengo este código
Lo que deseo es acelerar la macro, ya que la ejecuto y tarda hasta 3 minutos en realizar la operación
sera que sean por los datos son como 70 datos
o por el código
espero me puedas ayudar a solucionar mi problema
saludos cordiales
Sub Actualizamayojunio()
Application.ScreenUpdating = False
Dim mes
letra1 = InputBox("Letra que desea sustituir? MAYUSCULAS", "ORIGEN")
If letra1 = Empty Then Exit Sub 'mejorar con revisión validez fecha
letra2 = InputBox("letra nueva? MAYUSCULAS", "DESTINO")
If letra2 = Empty Then Exit Sub 'mejorar con revisión fecha
'Le preguntarás al usuario por las fechas a sustituir y la nueva, y
mes = InputBox("Introducir el mes en el que se esta efectuando? MAYUSCULAS")
If mes = Empty Then Exit Sub 'mejorar con revisión validez fecha
Set fecha = Selection.Find(What:=letra2)
If fecha Is Nothing Then
Application.DisplayAlerts = False
End If
'MES DE MAYO
If Format(mes) = "MAYO" Then
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]modificado'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]modificado'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]Inventarios'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]Inventarios'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_MAYO'!$" & Format(letra1), Replacement:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_MAYO'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
'MES DE JUNIO
If Format(mes) = "JUNIO" Then
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]modificado'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]modificado'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]Inventarios'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]Inventarios'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_JUNIO'!$" & Format(letra1), Replacement:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_JUNIO'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
End If
MsgBox "Se ha cambiado la letra correctamente"
Application.ScreenUpdating = True
End Sub
Tengo este código
Lo que deseo es acelerar la macro, ya que la ejecuto y tarda hasta 3 minutos en realizar la operación
sera que sean por los datos son como 70 datos
o por el código
espero me puedas ayudar a solucionar mi problema
saludos cordiales
Sub Actualizamayojunio()
Application.ScreenUpdating = False
Dim mes
letra1 = InputBox("Letra que desea sustituir? MAYUSCULAS", "ORIGEN")
If letra1 = Empty Then Exit Sub 'mejorar con revisión validez fecha
letra2 = InputBox("letra nueva? MAYUSCULAS", "DESTINO")
If letra2 = Empty Then Exit Sub 'mejorar con revisión fecha
'Le preguntarás al usuario por las fechas a sustituir y la nueva, y
mes = InputBox("Introducir el mes en el que se esta efectuando? MAYUSCULAS")
If mes = Empty Then Exit Sub 'mejorar con revisión validez fecha
Set fecha = Selection.Find(What:=letra2)
If fecha Is Nothing Then
Application.DisplayAlerts = False
End If
'MES DE MAYO
If Format(mes) = "MAYO" Then
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]modificado'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]modificado'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]Inventarios'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_MAYO.XLS]Inventarios'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_MAYO'!$" & Format(letra1), Replacement:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_MAYO'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
'MES DE JUNIO
If Format(mes) = "JUNIO" Then
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]modificado'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]modificado'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]Inventarios'!$" & Format(letra1), Replacement:="GPP\Reportes\[LAYOUT DE OPERACION_JUNIO.XLS]Inventarios'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_JUNIO'!$" & Format(letra1), Replacement:="GPP\SUBGERENCIA DE AROMATICOS\[layout de operación.xls]BDGPP_JUNIO'!$" & Format(letra2), LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
End If
MsgBox "Se ha cambiado la letra correctamente"
Application.ScreenUpdating = True
End Sub
3 Respuestas
Respuesta de paramisolo
1
Respuesta de excelmaster
1
Respuesta de yescuder
1