Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Foglio di lavoro pesante

317 views
Skip to first unread message

Andrea22

unread,
Dec 4, 2009, 7:16:08 AM12/4/09
to
Ciao ho un foglio di lavoro contenente circa 4000 righe di valori con
colonne che arrivano fino alla bb (54 colonne), in excel 2007!!

Il foglio è formattato come tabella e ci sono dei bordi verticali a
divisione di quasi tutte le colonne!

Ci sono anche circa 35 formule nelle colonne, ripetute per tutta la
tabella che arriva a 5000 righe. Tra queste vi anche dei cerca vert,
circa 20....

Vi chiedo ho un modo per rendere meno pesante il file??

Infatti l'apertura è lenta (ma nn è un grande problema), più
problematico e lento quando inizio a fare in trova oppure ad usare i
filtri, allora il sistema rallenta molto!!

Qualche super idea "dimagrante"??

Message has been deleted

Andrea22

unread,
Dec 4, 2009, 7:23:09 AM12/4/09
to

oppure posso elimanre definitivamente le righe o le colonne vuote che
sono sicuro nn userò mai?? Si risparmia spazio??

Mauro Gamberini

unread,
Dec 4, 2009, 9:31:40 AM12/4/09
to

Ciao ho un foglio di lavoro contenente circa 4000 righe di valori con
colonne che arrivano fino alla bb (54 colonne), in excel 2007!!

Ci sono anche circa 35 formule nelle colonne, ripetute per tutta la


tabella che arriva a 5000 righe. Tra queste vi anche dei cerca vert,
circa 20....

*************************************

4000 o 5000?

Escludi il calcolo automatico delle formule
e forzalo tu con F9.

Ancora:
http://office.microsoft.com/it-it/excel/HP052030301040.aspx


Il foglio � formattato come tabella e ci sono dei bordi verticali a


divisione di quasi tutte le colonne!

********************************************

I bordi a cosa servono in concreto
ad Excel(ad Excel, eh)?
A nulla. Eliminali.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads

Andrea22

unread,
Dec 4, 2009, 10:02:15 AM12/4/09
to
On 4 Dic, 15:31, "Mauro Gamberini"

ho inserito questa macro all'interno del foglio di lavoro:

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

Me.ScrollArea = "$A$1:$bi$5000"

Application.ScreenUpdating = True
End Sub

Ma il problema resta, anche mettendo il calcolo manuale con F9.....

Ma ho rivisto una versione precedente del file dove le uniche
differenze sono:

- 20 righe in più di dati, che nn dovrebbero pesar epiù di tanto

- e l'allargamento della tabella da 4000 a 5000 campi o righe che
siano!

Bene dopo queste due modifiche il singolo foglio di lavoro è passato
da 1,69MB a 6,61MB!!!

Possibile???

file precedente

Mauro Gamberini

unread,
Dec 4, 2009, 10:16:06 AM12/4/09
to
ho inserito questa macro all'interno del foglio di lavoro:

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

Me.ScrollArea = "$A$1:$bi$5000"

Application.ScreenUpdating = True
End Sub

Ma il problema resta, anche mettendo il calcolo manuale con F9.....

Ma ho rivisto una versione precedente del file dove le uniche
differenze sono:

- 20 righe in pi� di dati, che nn dovrebbero pesar epi� di tanto

- e l'allargamento della tabella da 4000 a 5000 campi o righe che
siano!

Bene dopo queste due modifiche il singolo foglio di lavoro � passato
da 1,69MB a 6,61MB!!!
*************************************************

ScreenUpdating?
Sai a cosa serve SreenUpdating, vero?
Dai piuttosto un'occhiatina a:

Application.Calculation, propriet�

nella guida del vb di Excel 2007

E poi, com'� che improvvisamente siamo
nel vb di Excel? Nel primo post non
lo specificavi. Cosa non sto capendo?
Grazie.

Andrea22

unread,
Dec 4, 2009, 10:40:37 AM12/4/09
to
On 4 Dic, 16:16, "Mauro Gamberini"

<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> ho inserito questa macro all'interno del foglio di lavoro:
>
> Private Sub Worksheet_Activate()
>
> Application.ScreenUpdating = False
>
> Me.ScrollArea = "$A$1:$bi$5000"
>
> Application.ScreenUpdating = True
> End Sub
>
> Ma il problema resta, anche mettendo il calcolo manuale con F9.....
>
> Ma ho rivisto una versione precedente del file dove le uniche
> differenze sono:
>
> - 20 righe in più di dati, che nn dovrebbero pesar epiù di tanto

>
> - e l'allargamento della tabella da 4000 a 5000 campi o righe che
> siano!
>
> Bene dopo queste due modifiche il singolo foglio di lavoro è passato

> da 1,69MB a 6,61MB!!!
> *************************************************
>
> ScreenUpdating?
> Sai a cosa serve SreenUpdating, vero?
> Dai piuttosto un'occhiatina a:
>
> Application.Calculation, proprietà

>
> nella guida del vb di Excel 2007
>
> E poi, com'è che improvvisamente siamo

> nel vb di Excel? Nel primo post non
> lo specificavi. Cosa non sto capendo?
> Grazie.
>
> --
> ---------------------------
> Mauro Gamberinihttp://www.riolab.org/http://www.maurogsc.eu/http://social.microsoft.com/Forums/it-IT/officeit/threads

Il VB j'ho inserito dopo che si è presentato il problema.....
Ma nn ho raggiunto nessun risultato apprezzabile!

Mentre per il Application.Calculation, meglio di no visto che il
foglio è già pesante e si muove in modo pesante.

Cito
"Qualunque codice tu scriva, sarà
*sempre* più lento di una funzione
nativa di Excel scritta all'interno di una
cella. "

Altre idee??

Grazie

Mauro Gamberini

unread,
Dec 4, 2009, 10:48:27 AM12/4/09
to
Mentre per il Application.Calculation, meglio di no visto che il
foglio � gi� pesante e si muove in modo pesante.

Cito
"Qualunque codice tu scriva, sar�
*sempre* pi� lento di una funzione


nativa di Excel scritta all'interno di una
cella. "

*********************************

Chiss� chi l'ha scritto... ;-)

Ricapitoliamo.
Hai disabilitato *a mano* il ricalcolo
automatico?
Se s�, noti differenze?
Di velocit�, intendo.

Andrea22

unread,
Dec 4, 2009, 11:05:48 AM12/4/09
to
On 4 Dic, 16:48, "Mauro Gamberini"

<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> Mentre per il Application.Calculation, meglio di no visto che il
> foglio è già pesante e si muove in modo pesante.
>
> Cito
> "Qualunque codice tu scriva, sarà
> *sempre* più lento di una funzione

> nativa di Excel scritta all'interno di una
> cella. "
> *********************************
>
> Chissà chi l'ha scritto... ;-)

>
> Ricapitoliamo.
> Hai disabilitato *a mano* il ricalcolo
> automatico?
> Se sì, noti differenze?
> Di velocità, intendo.

Ciao so bene che l'hai scritto TU!!

Ho provato disabilitando il calcolo automatico ma niente di
particolare....

anche perchè una volta che la riga viene scritta con i dati quasi
tutte le formule con il cerca vert diventano solo valori (ovvero ho
cancello la formula e lascio solo i valori)...

adesso provo con un vecchio "trucco"

Creo un clone di quel foglio di lavoro con tutti i dati e le formule e
la metto al posto dell'altro....

In passato ha funzionato! Non si trova la soluzione al problema ma si
trova un metodo per aggirarlo!!

Grazie mille!!

lorenzoeffe

unread,
Dec 7, 2009, 4:04:20 PM12/7/09
to

"Andrea22" <andrea....@gmail.com> ha scritto nel messaggio
news:84e15fa9-63e5-412b...@k4g2000yqb.googlegroups.com...

On 4 Dic, 16:48, "Mauro Gamberini"
<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> Mentre per il Application.Calculation, meglio di no visto che il
> foglio � gi� pesante e si muove in modo pesante.
[cut]

adesso provo con un vecchio "trucco"

Creo un clone di quel foglio di lavoro con tutti i dati e le formule e
la metto al posto dell'altro....

In passato ha funzionato! Non si trova la soluzione al problema ma si
trova un metodo per aggirarlo!!

[cut]

Allora prova anche con il codice sottoriportato l'ho trovata su questo NG
tempo fa (dallo stile forse era di Norman) ed in sostanza si preoccupa di
"rinfrescare" le celle vuote. Ciao, Lo:
'=============>>
Public Sub Comprimi_foglio()
Dim WB As Workbook
Dim sStr As String, sStr2 As String
Dim OldSize As Long
Dim NewSize As Long

Set WB = Workbooks("Comprimi_foglio.xls") '<<=== da CAMBIARE

On Error GoTo XIT
Application.ScreenUpdating = False
With WB
sStr = .FullName
sStr2 = .Name
.Save
OldSize = FileLen(sStr)
Call WorkbookReduceSize(WB)
.Close SaveChanges:=True
Set WB = Workbooks.Open(Filename:=sStr)
NewSize = FileLen(sStr)
MsgBox Prompt:="Le dimensioni del file " & sStr2 _
& " sono state ridotte da " _
& OldSize & " a " & NewSize, _
Buttons:=vbInformation, _
Title:="Dimensioni"
End With
XIT:


Application.ScreenUpdating = True
End Sub

'------------------->>
Public Sub WorkbookReduceSize(WB As Workbook)
Dim iLastRow As Long
Dim iLastCol As Long
Dim Rng As Range
Dim i As Long
'Application.ScreenUpdating = False
On Error GoTo XIT
For i = 1 To WB.Worksheets.Count
With WB.Worksheets(i)
.DisplayPageBreaks = False
iLastRow = 0
iLastCol = 0
On Error Resume Next
iLastRow = _
.Cells.Find("*", after:=.Cells(1), _
LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
iLastCol = _
.Cells.Find("*", after:=.Cells(1), _
LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByColumns).Column
On Error GoTo 0
If iLastRow * iLastCol = 0 Then
.Columns.Delete
Else
If Not iLastRow = .Rows.Count Then
.Range(.Cells(iLastRow + 1, 1), _
.Cells(.Rows.Count, 1)).EntireRow.Delete
End If
If Not iLastCol = .Columns.Count Then
.Range(.Cells(1, iLastCol + 1), _
.Cells(1, .Columns.Count)).EntireColumn.Delete
End If
End If
Set Rng = .UsedRange
End With
Next i
XIT:


Application.ScreenUpdating = True
End Sub

'<<=============

0 new messages