IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mise à jour Macro VBA 2003 en 2007 [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Octobre 2009
    Messages : 28
    Par défaut 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 : 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

  2. #2
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Octobre 2009
    Messages : 28
    Par défaut
    Bon bah du coup j'ai trouvé la solution.
    En fait, j'ai complétement changé la procédure de protection des feuilles. Au lieu de déprotéger, puis de reprotéger les feuilles à chaque calcul, je fais une procédure à l'ouverture du fichier qui protége toutes mes feuilles avec un mot de passe, mais qui autorise les macros à s'exécuter par la suite (sans enlever la protection).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
     
    Dim wSheet As Worksheet
    For Each wSheet In Worksheets
        wSheet.Protect Password:="toto", UserInterFaceOnly:=True
    Next wSheet
    End Sub
    Du coup, fini les protections à répétitions : toutes mes feuilles sont protégées en un coup des utilisateurs, mais les macros peuvent être exécutées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro Word 2003 vers 2007
    Par MGB2007 dans le forum VBA Word
    Réponses: 3
    Dernier message: 18/10/2008, 14h01
  2. Compatibilité macros outlook 2003 et 2007 ?
    Par ledev95 dans le forum Outlook
    Réponses: 2
    Dernier message: 07/08/2008, 17h06
  3. Mise à jour de VBA pour Access
    Par nicoaix dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/04/2008, 16h30
  4. Lenteurs de macros VBA sous Excel 2007 vs Excel 2003
    Par nicotab dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2007, 18h47
  5. Réponses: 5
    Dernier message: 13/07/2006, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo