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 de macros dans protégée


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut exécution de macros dans protégée
    bonjour,

    comment peux on faire pour que, dans une feuille protégé (sauf deux ou trois cellules), l'exécution des macros puis malgré tout ce faire.

    exemple:

    j'ai une macro qui effectue des copier coller.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub copier_coller_F()
    '
    ' copier_coller_F Macro
    ' Macro enregistrée le 02/02/2009 par Administrateur
    '
     
    '
        Range("B8").Select
        Selection.Copy
        Range("D31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("C8").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("E31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("D13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("I31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("B13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("J31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("I15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("K31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("J15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("L31").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
    End Sub
    comment je peux faire pour que les cellules dans lesquel je doit taper ne soit pas protégé (facile) mais pour que l'exécution de la macro puisse malgres tout se réaliser.

    merci d'avance

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Bonjour,
    A mon avis le plus simple sera de déprotéger ta feuille au début de la macro pour remettre la protection à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("TaFeuillle").Unprotect "MotDePasse"
    ...
    Sheets("TaFeuille").protect "MotDePasse"
    Voir l'aide en ligne pour définir ce qui sur la feuille doit être 'bloqué' (cellule, objet, ...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    yeah,

    ca marche nikel. un peu fastidieu car j'ai une bonne grosse sinquantaine de macro différentes. mais ca marche.

    pour l'info, n'existe t'il pas une ligne de code qui effectue cette opération (dé-proteger et proteger) a chaque fois qu'une macro est activée?

    ++

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Ici une discussion qui pourrait t'interesser !

    Tu dis

  5. #5
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,
    pour l'info, n'existe t'il pas une ligne de code qui effectue cette opération (dé-proteger et proteger) a chaque fois qu'une macro est activée?
    Pas si simple que cela car il faudrait que le système ai assez d'intelligence pour savoir quand déprotéger et quand reprotéger les cellules.

    Pour ce faire, j'utilise 2 techniques différentes :
    Soit
    1) Avant mes macros (ou plutot en début de traitement global) je déprotège toutes mes feuilles et après je reprotège toutes celles qui doivent l'être (car certaines restent parfois non bloquées pour le besoin du traitement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'lock
    For Sheet_number = 1 To Sheets.Count
    if sheets(Sheet_Number).Name <> "#config" then
      Sheets(Sheet_number).Protect Password:="TonPassword", DrawingObjects:=True, Contents:=True, Scenarios:=True
    endif
    next
     
    'unlock 
    For Sheet_number = 1 To Sheets.Count
      Sheets(Sheet_number).Unprotect Password:="TonPassword"
    Next Sheet_number
    2) Avant le traiter une feuille, je la déprotège et la reprotège après.

    'Lock
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Z_File_Lock_1(Sel_Sheet As String)
            Select Case Sel_Sheet
                Case "#config" 'Let This Sheet Open
                Case Else
                 Sheets(Sel_Sheet).Protect Password:="TonPassword", DrawingObjects:=True, Contents:=True, Scenarios:=True
            End Select
    End Sub
    'unlock
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Z_File_Unlock_1(Sel_Sheet As String)
        Sheets(Sel_Sheet).Unprotect Password:="TonPassword"
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    mm ok, je vois a peu pres ce que tu veux dire.

    le fait est que je n'ai qu'une feuile. c'est une sorte de menu (nommé formulaire)

    toues les autres feuilles sont masquées. les futur utilisateur du fichier ne sont pas des cracks, et ne savent pas se servir d'excel.

    mon objectif est attein dans le sens ou je déprotege la feuille avant l'exécution de chaque macro. puis je la reprotege a la fin de l'exécution de la macro.

    je m'etait dis qu'il etait peux etre possible de n'avoir qu'une macro, ou un code, qui s'exécute a chaque fois qu'une macro est lancé. cette super macro dévérouillerai la feuille uniquement lors de l'exécution des macros.

    je sais pas si ca existe.

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Re,
    je doute que ce genre de super macro existe, car alors elle se lancerait elle-meme.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    ok bon bah tant pis.

    la solution que j'ai me convient. c'est juste que je trouvai ca un peu fastidieu quand on a plus de 50 macro différente.

    mais merci pour ta réponse.

    a bientot pour de nouvelles aventures ...

  9. #9
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Ne pas oublier que l'on peut protéger les feuilles par code, méthode .Protect. Si on a précisé UserInterfaceOnly = True, On peut alors faire beaucoup de chose dans les feuilles sans les déprotéger.

    Bonne journée,

    PGZ

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

Discussions similaires

  1. Exécuter une macro dans un autre classeur
    Par Claire IZ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2014, 20h37
  2. [XL-2002] Exécuter une macro dans un objet Excel OLE.
    Par lafg1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/10/2014, 13h37
  3. Réponses: 18
    Dernier message: 18/11/2013, 10h50
  4. [A-07] exécuter une macro dans un état
    Par ozerte dans le forum IHM
    Réponses: 3
    Dernier message: 23/10/2008, 16h36
  5. Exécuter une macro dans une autre macro
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/02/2008, 13h17

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