Lenteur

Le
pb
Bonjour,
J'ai besoin de vos lumières.
Sur un XP SP3 avec Intel Xeon et 4 go de Ram, je ne comprends pas pourquoi
ce bout de code est lent.

Sub col()
Dim nb_col As Integer
Range("tablo").Select
nb_col = 13
Columns("A:A").Select
For i = 1 To nb_col
Selection.Insert Shift:=xlToRight
Next
End Sub

Normalement cela devrait-être instanné non?
Merci
Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #19004221
Bonjour,

'Eviter les rarement utiles select

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
End Sub



'''''''''


Nota:
4Go ne servent pas à + que si tu en avais un peu moins...
pour VISTA:
http://support.microsoft.com/kb/929605/fr

pour XP:
http://support.microsoft.com/kb/888137/fr )


'lSteph



pb a écrit :
Bonjour,
J'ai besoin de vos lumières.
Sur un XP SP3 avec Intel Xeon et 4 go de Ram, je ne comprends pas pourquoi
ce bout de code est lent.

Sub col()
Dim nb_col As Integer
Range("tablo").Select
nb_col = 13
Columns("A:A").Select
For i = 1 To nb_col
Selection.Insert Shift:=xlToRight
Next
End Sub

Normalement cela devrait-être instanné non?
Merci
Pascal




pb
Le #19004411
Merci c'est super mieux.
"LSteph"
Bonjour,

'Eviter les rarement utiles select

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
End Sub



'''''''''


Nota:
4Go ne servent pas à + que si tu en avais un peu moins...
pour VISTA:
http://support.microsoft.com/kb/929605/fr

pour XP:
http://support.microsoft.com/kb/888137/fr )


'lSteph



pb a écrit :
Bonjour,
J'ai besoin de vos lumières.
Sur un XP SP3 avec Intel Xeon et 4 go de Ram, je ne comprends pas
pourquoi ce bout de code est lent.

Sub col()
Dim nb_col As Integer
Range("tablo").Select
nb_col = 13
Columns("A:A").Select
For i = 1 To nb_col
Selection.Insert Shift:=xlToRight
Next
End Sub

Normalement cela devrait-être instanné non?
Merci
Pascal





Philippe.R
Le #19005541
Bonjour,
La recherche extrême de la concision te perdra ;o)))

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
Application.ScreenUpdating = True
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"LSteph" news:
Bonjour,

'Eviter les rarement utiles select

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
End Sub



'''''''''


Nota:
4Go ne servent pas à + que si tu en avais un peu moins...
pour VISTA:
http://support.microsoft.com/kb/929605/fr

pour XP:
http://support.microsoft.com/kb/888137/fr )


'lSteph



pb a écrit :
Bonjour,
J'ai besoin de vos lumières.
Sur un XP SP3 avec Intel Xeon et 4 go de Ram, je ne comprends pas
pourquoi ce bout de code est lent.

Sub col()
Dim nb_col As Integer
Range("tablo").Select
nb_col = 13
Columns("A:A").Select
For i = 1 To nb_col
Selection.Insert Shift:=xlToRight
Next
End Sub

Normalement cela devrait-être instanné non?
Merci
Pascal




LSteph
Le #19007441
Bonjour,

On s'y trouve dès le end sub (voir exemple plus bas)
particularité de ScreenUpdating = False

qui n'a plus besoin d'être remis à true depuis un nombre conséquent de
versions contrairement à ce que dit toujours l'aide.
mais
je reconnais ton sens de la pédagogie car pour des versions plus
anciennes c'était indispensable
et comme hélas d'autres propriétés comme enableevents ou displayalerts
nécessitent effectivement qu'on remette à true, il vaut mieux s'en tenir
à une bonne habitude.
J'espère donc mériter toujours la bénédiction de Mgr Abile

;-)
--
lSteph

A tester consécutivement:

Sub azzz()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 10
[a:a].Cells(i) = "voici"
Application.Wait Now + TimeValue("00:00:01")
Next
End Sub

Sub bzzz()
Dim i As Long

For i = 1 To 10
[b:b].Cells(i) = "voici"
Application.Wait Now + TimeValue("00:00:01")
Next
End Sub


Philippe.R a écrit :
Bonjour,
La recherche extrême de la concision te perdra ;o)))

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
Application.ScreenUpdating = True
End Sub



Mgr.Abile
Le #19007801
Bonjour mon fils,

Il y a effectivement de bonnes habitudes à conserver, qu'il s'agisse de
déclarer ou de rendre dans leur état initial les variables qu'on emprunte,
ou bien de porter sa mitre quand les circonstances l'imposent ; c'est le
moindre des respects qu'on doit à son prochain et je vous en sait un
fervent.
--
News://news.microsoft.com/microsoft.public.fr.excel
Allez en paix
T.Abile
"LSteph" news:uzh$
Bonjour,

On s'y trouve dès le end sub (voir exemple plus bas)
particularité de ScreenUpdating = False

qui n'a plus besoin d'être remis à true depuis un nombre conséquent de
versions contrairement à ce que dit toujours l'aide.
mais
je reconnais ton sens de la pédagogie car pour des versions plus anciennes
c'était indispensable
et comme hélas d'autres propriétés comme enableevents ou displayalerts
nécessitent effectivement qu'on remette à true, il vaut mieux s'en tenir à
une bonne habitude.
J'espère donc mériter toujours la bénédiction de Mgr Abile

;-)
--
lSteph

A tester consécutivement:

Sub azzz()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 10
[a:a].Cells(i) = "voici"
Application.Wait Now + TimeValue("00:00:01")
Next
End Sub

Sub bzzz()
Dim i As Long

For i = 1 To 10
[b:b].Cells(i) = "voici"
Application.Wait Now + TimeValue("00:00:01")
Next
End Sub


Philippe.R a écrit :
Bonjour,
La recherche extrême de la concision te perdra ;o)))

Sub col()
Application.ScreenUpdating = False
[a:m].Insert Shift:=xlToRight
Application.ScreenUpdating = True
End Sub





LSteph
Le #19008191
;-)

Mgr.Abile a écrit :
Bonjour mon fils,

Il y a effectivement de bonnes habitudes à conserver, qu'il s'agisse de
déclarer ou de rendre dans leur état initial les variables qu'on
emprunte, ou bien de porter sa mitre quand les circonstances l'imposent
; c'est le moindre des respects qu'on doit à son prochain et je vous en
sait un fervent.


Publicité
Poster une réponse
Anonyme