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:
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.
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
Merci pour votre aide
Partager