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 :

Exécution d'une macro VBA sur feuilles et données verrouillées [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire financier et administratif
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Gestionnaire financier et administratif
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Exécution d'une macro VBA sur feuilles et données verrouillées
    Bonjour à tous et à toutes.
    Mon problème est le suivant :
    J'ai un fichier qui fait appel à des cellules automatisées par des formules.
    J'ai crée une petite macro qui a pour objectif d'accompagner des utilisateurs néophytes d'excel dans la saisie d'un série de données.
    Celle-ci fonctionne parfaitement.
    Mais... sinon je ne posterais pas, il faut bien un mais quelque part.

    Ce fichier fait appel à de nombreuses données personnelles et à des fichiers agents. Les agents n'ont pas à connaître les données personnelles des autres agents celles-ci étant totalement confidentielles.
    J'ai donc masqué les feuilles contenant les données servant aux calculs et aux insertions de données, j'ai verrouillé tout le bazar en lecture et en écriture pour ne laisser accessible qu'une feuille intitulée saisie ou les agents peuvent saisir les informations qui les concernent, vérifier les données saisies, éventuellement les corriger.

    Or mon soucis, c'est que maintenant que les éléments sont verrouillés, forcément, ma macro ne s'execute plus... logique me direz-vous.
    Je suis donc à la recherche d'une ligne d'instructions me permettant de déprotéger ma feuille sur laquelle il doit y avoir les modifications, procéder à mes modifications, puis reverrouiller la feuille avec le mot de passe. Ceci afin que la direction puisse accéder aux données finales avec le même mot de passe.

    J'ai bien trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ActiveSheet.Unprotect
     
    ici l'exécution de la macro etc.
     
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    Or cette manipulation ne fonctionne bien évidemment que quand la feuille est verrouillée initialement sans mot de passe ce qui me pose des problèmes
    Avez-vous une idée quant à la manière d'insérer le mot de passe quelque part ? J'ai probablement loupé quelque chose...

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu souhaites que ton code VBA fonctionne malgré la protection de la feuille, il te faut mettre la valeur True à la propriété userinterfaceonly.
    Exemple d'une écriture sur la cellule A1 de la feuille Feuil1 après protection de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub t()
      Dim sht As Worksheet
      Set sht = ThisWorkbook.Worksheets("Feuil1")
      sht.Protect Password:="toto", userinterfaceonly:=True
      sht.Range("A1") = "Coucou"
    End Sub
    Tu peux aussi rendre la feuille invisible sans que l'utilisateur ne puisse la visualiser dans la liste des feuilles à afficher quand elles sont masquées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sht.Visible =xlSheetVeryHidden
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire financier et administratif
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Gestionnaire financier et administratif
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    merci infiniment, cela fonctionne parfaitement et m'ôte une sacrée épine du flanc

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

Discussions similaires

  1. étendre la "zone d'action" d'une macro VBA sur excel
    Par Harkneys dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2014, 10h10
  2. execution d'une macro VBA sur un autre ficheir excel
    Par Mickael Scofild dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/09/2009, 17h24
  3. Réponses: 2
    Dernier message: 05/03/2009, 17h43
  4. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50
  5. [VBA-E]Exécution d'une macro en arrière-plan
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/04/2006, 23h13

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