Bonjour,

Tout d'abord, je m'xcuse si je ne suis pas sur le bon forum.
Voila mon problème. Je suis stagiaire dans une entreprise qui vient de passer de office 2003 à office 2007. Et on m'a demandé de réparé une macro VBA sur un fichier excel qui merde depuis cette migration à office 2007. Le classeur contient plusieurs feuilles et l'affichage merde complètement (des boutons qui s'affichent sur d'autres pages, les feuilles qui se mettent à défiler dans tous les sens ...) J'ai pu définir le problème venait de cette fonction qui protège les feuilles et les déprotège:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub WsLock(Optional Y) 
Dim PWd$ 
PWd = "galopin" 
'Protége ou déprotège toutes les feuilles 
Application.ScreenUpdating = False 
If IsMissing(Y) Then 
For i = 1 To Worksheets.Count 
Worksheets(i).Protect PWd 
[A1].Select 
Next 
Else 
For i = 1 To Worksheets.Count 
Worksheets(i).Unprotect PWd 
[A1].Select 
Next 
End If 
End Sub
 
Sub deprotege() 
WsLock 0
End Sub
 
et pour protéger :
 
Sub protege() 
WsLock 
End Sub
J'ai donc mis le code en commentaire, et ça marche parfaitement. Sauf que l'utilisateur ne veut pas enlever cette protection. Le problème, c'est que dès qu'un calcul est fait, toutes les feuilles sont déprotégées, puis reprotégées à la fin du calcul .. je pense que c'est ça qui fait merder l'affichage. J'ai essayé d'améliorer la fonction mais rien n'y fait. Donc je voudrais savoir comment faire pour régler ce problème.

Merci pour votre aide