Pb ScreenUpdating sous 2003

B

baselunaire

Guest
bonjour,

j'ai un petit souci sur excel 2003 :

via le code d'un classeur, j'en ouvre un second.
Je passe ensuite de l'un à l'autre pour récupérer des valeurs.

la meme macro, sous excel 97 ne provoquait aucun clignotement car j'utilisais la méthode Application.ScreenUpdating = False.
Mais avec Excel 2003, il passe sans cesse de l'un à l'autre classeur, et ça déplait fortement à mes utilisateurs !

Existe-t-il une autre méthode sous 2003 que ScreenUpdating ??
Peut etre faudrait-il ouvrir le classeur en mode caché ? Mais je ne trouve rien...

Merci de vos idées, suggestions, solutions ou tout début de piste que vous pourriez me donner.

Delphine
 
M

michel

Guest
bonsoir Delphine

il est peut etre aussi possible de récupérer les infos , sans basculer de l'un à l'autre en adaptant la macro et en supprimant les "Select"

as-tu la possiblité de placer sur le forum un exemple zippé , sans les données confidentielles


bonne soiree
MichelXld
 
P

Petou

Guest
Bonjour,

je développe aussi des applications sous Excel et en migrant de Excel 200 à Excel 2003, j'ai découvert que la version 2003 ignorait superbement l'instruction "application.screenupdating = false"

Je l'utilise pour figer l'écran lorsque je lance une macro dans un classeur et que celle-ci ouvre d'autres classeurs pour y copier des données par exemple. Le but étant d'accélérer l'exécution du code.

Je pense qu'il s'agit là d'un bug de Excel 2003 !
Si quelqu'un a une astuce pour contourner ce problème, je suis preneur.

D'autant plus que les applications développées sont confiées à d'autres utilisateurs qui n'ont pas à savoir quels fichiers sont ouverts et fermés "derrière leur écran" !


Pierre-Alain

rque : dans le cas ou le ScreenUpdating est utililisé au sein d'un même classeur, je ne constate pas de pb
(cf le code suivant qui copy-paste 100 fois de suite un range d'une feuille à l'autre)

Sub test()
Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 100

Worksheets("Feuil1").Range("A1:T204").Copy
Worksheets("Feuil2").Select
With Range("B1")
.Select
.PasteSpecial (xlPasteAll)
End With

Worksheets("Feuil1").Select

Next i
Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 162
Messages
2 106 603
Membres
109 638
dernier inscrit
psou