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 :

interdire suprimer feuille [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Par défaut interdire suprimer feuille
    bonjour
    au travail , j'ai eu une mauvaise surprise ,un collègue a réussi a me supprimer une feuille dans un classeur
    je voudrai interdire la suppression d'une feuille
    j'ai été dans outils ,protection classeur, protéger structure, mais avec les macros , ça bloque (j'ai des macros qui font changer de couleur les onglets suivant conditions)
    comment est-ce que je peut faire?
    merci

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 106
    Par défaut
    Salut
    Peut être en protégeant ton classeur complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'Au début de ta macro, tu dé-protèges ton classeur
    workbooks("MonClasseur").UnProtect ...
    '[...] Ici tu met les actions a effectuer
    'et a la fin tu remet la protection
    workbooks("MonClasseur").Protect ...
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Par défaut interdire
    bonjour
    c'est compliqué , parce que la et les macros sont en fonction permanente
    je voudrai juste qu'en faisant clic droit sur l'onglet , la fonction supprime, ou la touche supprime, ne soit plus valide
    merci

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Un petit exemple
    A l'ouverture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        Call SuppressionFeuille(False)
    End Sub

    A la fermeture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Call SuppressionFeuille(True)
    End Sub
    Et dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SuppressionFeuille(Activer As Boolean)
        Dim Ctrls As CommandBarControls
        Dim Ctrl As CommandBarButton
     
        Set Ctrls = Application.CommandBars.FindControls(ID:=847)
     
        For Each Ctrl In Ctrls
            Ctrl.OnAction = IIf(Activer, "", vbNull)
        Next Ctrl
    End Sub
    Tel quel, quand le fichier est ouvert on ne peut plus supprimer de feuille
    quelque soit le classeur et a la fermeture tout redevient normal.
    Pour ne bloquer que la suppression dans le classeur en question il faut changer
    vbNull par le nom d'une macro (Entre guillemets) que tu feras et qui devra verifier dans quel classeur
    on se trouve pour faire la suppression (par la macro) ou non.
    Ca c'est pas bien complique.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Par défaut interdire
    bonjour
    j'ai essayé,c'est très bien,ça fonctionne,mais ça agit sur tous les fichier excels ouvert
    juste pour un fichier concerné,je supose que c'est ce que tu as voulu dire remplacer vbnull par macro
    de quel type?
    merci

  6. #6
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    C'est bien ce que je voulais dire.

    Une autre solution plutot que de faire un test par macro...
    En utilisant les evenements Activate et Deactivate du classeur

    Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Call SuppressionFeuille(True)
    End Sub
    Private Sub Workbook_Open()
        Call SuppressionFeuille(False)
    End Sub

    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Activate()
        Call SuppressionFeuille(False)
    End Sub
     
    Private Sub Workbook_Deactivate()
        Call SuppressionFeuille(True)
    End Sub

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

Discussions similaires

  1. Interdire accès feuille Excel
    Par lithoshin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2013, 11h36
  2. Interdire accés feuille Excel
    Par linkcr15 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/05/2012, 09h01
  3. Excel - Interdire le déplacement d'une feuille
    Par JesuhsXVII dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/09/2007, 15h24
  4. [VBA-E]Interdire la selection de cellule dans une feuille
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/03/2006, 23h24
  5. [VB6] [Form] Interdire le déplacement d'une feuille
    Par Loïc dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/09/2002, 15h02

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