Mise à jour Macro VBA 2003 en 2007
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:
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