Inquietud en el tiempo de ejecución de una Macro

Tengo la siguiente macro

Sub REGISTROS()
    Application.Visible = False
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h1 = Sheets("VISITAS")
    Set h2 = Sheets("CARTERA")
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range("C5:C14").Copy: h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    h1.Range("F5:F14").Copy: h2.Range("K" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    h1.Range("F2").Copy: h2.Range("U" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=False
    h2.Range("V3:Y3").Copy h2.Range("V" & u)
    h2.Range("F" & u).TextToColumns Destination:=h2.Range("Z" & u), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 2), Array(1, 1), Array(4, 1)), TrailingMinusNumbers:=True
    h2.Range("AC3").Copy h2.Range("AC" & u)
    h2.Range("H" & u).TextToColumns Destination:=h2.Range("AD" & u), _
        DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Space:=True, _
        FieldInfo:=Array(Array(1, 2), Array(2, 2)), TrailingMinusNumbers:=True
    h2.Range("AF" & u) = "=TEXT(RC[-31],""yyyy"")"
    h2.Range("AG" & u) = "=TEXT(RC[-32],""mmmm"")"
    h2.Range("AH" & u) = "=IF(RC[-4]="""","""",IF(RC[-4]=""plan"",""Particulares"",RC[-3]))"
    '
    h1.Unprotect Password:="0976342842"
    H1. Range("F5:F7"). ClearContents
    H1. Range("F10:F12"). ClearContents
    H1. Range("F14"). ClearContents
    H1. Range("C6:C7"). ClearContents
    H1. Range("C9:C12"). ClearContents
    H1. Range("C14"). ClearContents
    h1.Range("F2") = h1.Range("F2") + 1
    h1.Protect Password:="0976342842"
    Application.ScreenUpdating = True
    Application.Visible = True
    ActiveWorkbook.Save
    Dim FileWsh As Object
    Set FileWsh = CreateObject("Scripting.FileSystemObject")
    MiVolumen = Hex$(FileWsh.Drives("C").SerialNumber)
    Select Case MiVolumen
        Case "9A42EB79"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Sheets("CARTERA").Visible = True
    Sheets("CARTERA").Copy
    ruta = "\\DERMATOLOGA1\manager\Consultorio\"
    ActiveWorkbook.SaveAs ruta & "Registros.xlsx", FileFormat:=xlOpenXMLWorkbook
    ActiveWorkbook.Close
    Sheets("CARTERA").Visible = xlVeryHidden
     Case Else
    End Select
    Set FileWsh = Nothing
End Sub

El tiempo de ejecución de dicha macro tarda entre minuto y medio y dos minutos en ejecutarse completamente.  Es normal que se demore tanto tiempo esa macro en ejecutarse o hay algo que esta haciendo mal y que hace que se demore mas de lo normal?

Doy este dato por si eso influye en algo, voy en el registro número 10057 y el archivo que lo contiene pesa 25 megas.

1 respuesta

Respuesta
2

H o l a:

Pues para tener un archivo de 25 megas, yo creo que el tiempo es adecuado.

Lo principal que hace que una macro se demore es el pegado especial.

Una opción es pasar celda por celda el valor de una hoja a otra, por ejemplo:

H1. Range("C5:C14"). Copy: h2. Range("A" & u)

Puede quedar así

h2.range("A" & u) = h1.range("C5")

h2.range("B" & u) = h1.range("C6")

h2.range("C" & u) = h1.range("C7")

h2.range("D" & u) = h1.range("C8")

Etc.


También guardar el archivo puede demorar. Pero aquí no se puede reducir el tiempo, ese tiempo es lo que tarda tu máquina en guardar el archivo.

S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas