............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Hoja Excel muy lenta

Ver el tema anterior Ver el tema siguiente Ir abajo

Hoja Excel muy lenta

Mensaje por jmstick el Vie Abr 13, 2012 3:38 am

Hola, trabajo normalmente con una hoja de control de horas, hoy cuando he llegado al abrirla e intentar añadir fila columna nueva e introducir datos, se a vuelto super lenta.

Me gustaría saber el motivo y como se podría optimizar para que vaya más rapido.

Muchas Gracias, adjunto fichero, la hoja que hablo es "MARZO2012"

CONTRASEÑA PARA ACCEDER AL LIBRO.

Contraseña 1: 26016
Contraseña 2: 16016

El fichero ocupa 3,5MB y no me deja subirlo al foro, como os lo ago llegar¿

jmstick

Masculino Cantidad de envíos : 5
Edad : 31
Ciudad - Pais : ANDUJAR-ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 15/02/2011

Volver arriba Ir abajo

Re: Hoja Excel muy lenta

Mensaje por GalileoGali el Vie Abr 13, 2012 6:23 am

Las razones que ocasionan lentitud en el calculo son múltiples y de origen variado, tanto de estructura, formuleo, calculacion, como otras provenientes del sistema operativo que repercuten indirectamente en Excel, como así también propias de las limitaciones del hardware. Si queres emprender un análisis serio de la cuestión, te recomiendo este sitio,

[Tienes que estar registrado y conectado para ver este vínculo]

centrado en el tema de la calculation y el objetivo final: aumentar la eficiencia de la herramienta Excel.


_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Hoja Excel muy lenta

Mensaje por jmstick el Vie Abr 13, 2012 6:39 am

Gracias por tu respuesta, era mas sencillo lo que me pasaba.... esta en modo impresión y al ponerlo en modo normal ya se a vuelto mas rapida. jejejeje

Aun así no creo que tenga tantos datos como para que pese 3,5mb

jmstick

Masculino Cantidad de envíos : 5
Edad : 31
Ciudad - Pais : ANDUJAR-ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 15/02/2011

Volver arriba Ir abajo

Re: Hoja Excel muy lenta

Mensaje por salvador1 el Jue Jul 17, 2014 6:20 pm

Por si a alguien le sirve, este código "limpia" la hoja creando una copia del archivo con menor tamaño. Yo lo he probado cuando Excel se me atrancaba y se cerraba, y funciona.

Código:

Sub Limpiar_rangos()
    
    
    Dim hj As Excel.Worksheet
    Dim copia$, ffin&, cfin&, TI&, TF&
    
    
    copia = crear_copia(ActiveWorkbook)
    MsgBox "Se ha creado una copia: " & vbLf & copia, vbInformation
        
        
    With ActiveWorkbook
    
        TI = VBA.FileLen(.FullName)
    
        For Each hj In .Worksheets
        
            ffin = 1
            cfin = 1
        
            With hj
            
                On Error Resume Next
                ffin = .UsedRange.Find(What:="*", _
                                       LookIn:=xlFormulas, _
                                       SearchOrder:=xlByRows, _
                                       SearchDirection:=xlPrevious).Row
                cfin = .UsedRange.Find(What:="*", _
                                       LookIn:=xlFormulas, _
                                       SearchOrder:=xlByColumns, _
                                       SearchDirection:=xlPrevious).Column
                On Error GoTo 0
                
                If .ProtectContents Then
                    If MsgBox("La hoja " & .Name & " se encuentra protegida." & vbLf & vbLf & _
                              "No se podrán limpiar los rangos de esta hoja a menos que se desproteja." _
                              & vbLf & vbLf & "¿Desea desprotegerla antes de continuar?", vbYesNo, _
                              "¡Hoja protegida!") = vbYes Then
                        If Desproteger(hj) Then
                            Limpiar hj, ffin, cfin
                        Else
                            MsgBox "No se ha desprotegido la hoja.", vbCritical, "¡Clave incorrecta!"
                        End If
                    End If
                Else
                    Limpiar hj, ffin, cfin
                End If

            End With
            
        Next hj
        
        .Save
        
        TF = VBA.FileLen(.FullName)
        
    End With
    
        
    MsgBox "Tamaño original: " & VBA.Format(TI, "#,##0") & " bytes." & vbLf & vbLf & _
           "Tamaño final: " & VBA.Format(TF, "#,##0") & " bytes." & vbLf & vbLf & _
           "El archivo se redujo en: " & VBA.Format(TI - TF, "#,##0") & " bytes" & _
           " (" & VBA.FormatPercent(Abs(TI / TF - 1), 2) & ")."
          
    
End Sub
Private Sub Limpiar(ByVal hj As Excel.Worksheet, ByVal ffin As Long, ByVal cfin As Long)

    With hj
            
        With .Range(.Cells(ffin + 1, 1), .Cells(.Rows.Count, 1)).EntireRow
            If .MergeCells = False Then .Clear
        End With
        
        With .Range(.Cells(1, cfin + 1), .Cells(1, .Columns.Count)).EntireColumn
            If .MergeCells = False Then .Clear
        End With
        
    End With
    
End Sub
Private Function crear_copia(ByVal Libro As Excel.Workbook) As String

        With Libro
            .Save
            crear_copia = .Path & Application.PathSeparator & VBA.Format(VBA.Now, "d-m-yy h-mm ") & .Name
            .SaveCopyAs crear_copia
        End With
        
End Function
Private Function Desproteger(ByVal hj As Excel.Worksheet) As Boolean
    
    On Error Resume Next
    hj.Unprotect
    Desproteger = Not VBA.CBool(Err.Number)
    On Error GoTo 0
    
End Function

salvador1

Masculino Cantidad de envíos : 1
Edad : 31
Ciudad - Pais : España
Version de Excel : 2007
Fecha de inscripción : 20/09/2012

Volver arriba Ir abajo

Re: Hoja Excel muy lenta

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.