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 :

feuille verouillé pour les utilisateurs pas pour les macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 12
    Points
    12
    Par défaut feuille verouillé pour les utilisateurs pas pour les macro
    bonjour,

    j'ai besoin de verrouiller une feuille excel pour interdire aux utilisateurs la modification des donnée, mais je veux que les macro y ai accès : depuis une autre feuille j'ai des macro qui via des combo box remplissent la feuille que je veux protéger.
    Le problème est que quand on verrouille la sélection ou la modification d'objet dans la feuille ça verrouille aussi pour les macro du coup j'ai des bugs lors de l'execution de mes macro.

    Une solution serait d'intercaler partout des feuil3.unprotect ... feuil3.protect dès que je modifie quelque chose dans ma feuil3 (celle que je veux verrouiller) mais j'ai pas loin de 3000 ligne de code et ça me prendrait un temps fou (et ça serait hyper moche) de remplacer tous mes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil3.cells(machin,bidule) = truc
    par des

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    feuil3.unprotect 
      feuil3.cells(machin,bidule) = truc
    feuil3.protect
    en plus j'ai des procédure qui appellent en boucle d'autre procédure : quand j'essaye ça sur un bout de code l'action feuil3.unprotect ... feuil3.protect appelée depuis la feuil1 fait alterner très rapidement feuil1 et feuil3 : c'est très moche ...

    Quelqu'un aurait il une idée pour m'aider?

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour
    Voila la solution que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each ws In Worksheets
         ws.Protect userinterfaceonly:=True
    Next ws
    A l'ouverture du classeur.
    Remarque tu aurais positionné ton curseur sur protect et appuyé sur F1 pour lancer l'aide tu aurais eu la même réponse

    Autre remarque : quand tu donnes un code utilise les balise. Il y a un lien pour t'expliquer comment faire dans le premier poste du forum.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Je ne pense pas qu'il y ai une possibilité de déverrouiller pour les macrois, mais il n'est pas nécessaire de verrouillé/déverrouillé à chaque appel ??, le faire en début et fin de macros serait plus adéquoit.

    en plus j'ai des procédure qui appellent en boucle d'autre procédure : quand j'essaye ça sur un bout de code l'action feuil3.unprotect ... feuil3.protect appelée depuis la feuil1 fait alterner très rapidement feuil1 et feuil3 : c'est très moche ...
    Pour éviter ça tu peu mettre en début de macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.ScreenUpdating = False
    'et en fin
    Application.ScreenUpdating = True
    A+
    Edit :
    Salut Krovax..
    Comme quoi ont apprend tout les jours (je connaissais pas ).

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci ça réponds exactement à ce que je voulais !

    j'avais regardé l'aide mais quand j'ai vu la (très) longue liste des arguments facultatif j'ai pensé qu'ils était équivalent à la liste de choix qu'on a dans outils->protection->protéger la feuille

    j'ai pas assez regardé dans le détail honte sur moi...

    >le forestier :

    mes combo box sont "liées" : un clic sur combobox1 implique une selection particulière dans combobox2 donc si à la fin de l'appel j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    feuil3.protect
    end sub
    au retour dans l'appel de combobox1 la feuille est protégée ...

    Merci pour vos réponses rapide il me reste plus qu'à rajouter "résolu "

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/01/2012, 13h43
  2. Réponses: 2
    Dernier message: 13/12/2011, 17h21
  3. Grant pour un utilisateur sur toutes les tables
    Par MarcS dans le forum Administration
    Réponses: 2
    Dernier message: 13/08/2009, 08h54
  4. Réponses: 4
    Dernier message: 03/05/2006, 00h04

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