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 :

Protéger un bouton particulier [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut Protéger un bouton particulier
    Bonjour

    j'ai une feuille protégée avec l'option Excel "Modifier les objets"

    Cependant j'ai besoin de protéger un objet (bouton) particulier de cette feuille par son nom pour ne pas autoriser sa modification (clic droit) sachant qu'une macro lui est associée.

    J'ai bien codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetBeforeRightClick(ByVal sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
    Manifestement cela ne suffit pas.
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, je ne suis pas sur d'avoir très bien compris?
    Il suffit d'enlever l'option modifier les objets. Si vous avez d'autres objets que vous souhaitez avoir accessible, vous pouvez aller décocher la case protection dans le tableau de l'objet que vous désirez garder accessible au Double click.
    J'espère avoir été clair?

    Nom : Capture d’écran 2021-02-07 à 09.08.00.png
Affichages : 123
Taille : 63,9 Ko
    Nom : Capture d’écran 2021-02-07 à 09.19.08.png
Affichages : 140
Taille : 37,4 Ko

    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Bonjour,

    c'est peut être moi qui n'est pas clair. En résumé :

    Je veux l'option "Modifier les objets" pour ma feuille sauf pour un objet de la feuille (un bouton) pour lequel je ne veux pas cette option
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La procédure événementielle Workbook_SheetBeforeRightClick concerne le clic droit sur une cellule et pas sur un objet ActiveX ou formulaire
    Chaque objet ActiveX a ses propres procédures événementielles (dans l'objet Worksheet) mais à ma connaissance, l'action sur le clic droit ne fait pas partie des événements que l'on peut intercepter sur l'un de ces objets

    Liste des procédures événementielles pour un contrôle CommandButton (ActiveX)

    Nom : 210207 dvp EventsProcessList.png
Affichages : 135
Taille : 15,3 Ko
    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

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Bonjour et merci,

    cela confirme tous mes tests.

    En conclusion si on a besoin de l'option "Modifier les objets" pour une raison quelconque sur une feuille, on ne peut pas empêcher l'utilisateur de supprimer un bouton par erreur sur cette même feuille ?

    Dont acte
    Il ne savait pas que c'était impossible, donc il l' a fait...

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,
    Citation Envoyé par retraite83 Voir le message
    ... on ne peut pas empêcher l'utilisateur de supprimer un bouton par erreur sur cette même feuille
    Si tu utilises un bouton ActiveX, il ne peut pas être supprimé par mégarde : ça ne peut être fait qu'en mode création, donc en connaissance de cause.

    EDIT :
    Il me semble utopique de se protéger contre toutes les erreurs que peut faire un utilisateur.
    Je n'ai qu'un mot d'ordre, ou plus exactement deux : Formation et Responsabilisation de l'utilisateur.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  7. #7
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, je ne peut pas parler d'active X car sur mac nous ne les avons pas. Par contre, vous pouvez choisir de garder actif la modification des objets, en sachant que vous devrez à ce moment la, modifier l'accès aux objets par le panneau de contrôle de chaque objet. Si vous conservez la case Verrouillé cliquée, il sera verrouillé (si la feuille est verrouillée). Sinon il ne sera pas verrouillé. Vous devrez faire cette manipulation pour tous les objets présents, avec le choix que vous souhaitez. Enfin sur mon Mac c'est comme cela que ça marche.
    Nom : Capture d’écran 2021-02-07 à 09.19.08.png
Affichages : 154
Taille : 37,4 Ko

    Si jamais cela ne marche pas avec les boutons ActiveX, vous pouvez toujours remplacer le bouton par une forme ou une photo ou autre chose ainsi que vous pourrez le voir ci-dessous(gomme pour effacer, imprimante pour imprimer etc) et relier l'objet à la procédure qu'il est censé lancer. Bon! enfin moi ce que j'en dit c'est juste pour essayer d'aider.
    Nom : Capture d’écran 2021-02-08 à 06.38.16.png
Affichages : 109
Taille : 26,6 Ko

    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  8. #8
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    #7

    Je ne vois pas cet affichage permettant d'accéder à la protection d'un objet particulier. Est-ce spécifique au Mac ?
    Il ne savait pas que c'était impossible, donc il l' a fait...

  9. #9
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour,
    dans le cadre d'un bouton, un click droit sur le bouton ouvre le sous menu suivant(voir ci-dessous) peut-être spécifique au Mac?
    Nom : Capture d’écran 2021-02-08 à 14.51.39.png
Affichages : 110
Taille : 69,0 Ko

    Dans le cas d'un objet, un click droit sur l'objet propose un format de l'image ou on peut choisir sur propriétés Verrouiller ou non. voir ci-dessous. La aussi peut-être spécifique au Mac?
    Nom : Capture d’écran 2021-02-08 à 14.54.28.png
Affichages : 112
Taille : 192,0 Ko

    Il est bien entendu que cela ne fonctionne que si la feuille est verrouillée.
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  10. #10
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne vois pas cet affichage permettant d'accéder à la protection d'un objet particulier. Est-ce spécifique au Mac ?
    Dans l'onglet [Développeur], la commande propriété affiche la propriété de l'objet sélectionné. Il suffit de modifier la valeur de la propriété Locked de True à False pour que l'on puisse après la protection de la feuille effectuer une modification des propriétés de cet objet mais franchement, je n'en vois non seulement pas l'intérêt mais en plus je trouve cela dangereux.

    Pour moi un bouton sert à effectuer une action lorsque l'on clique dessus. Point à la ligne
    Le but de la protection d'une feuille c'est pour éviter que l'utilisateur fasse des manipulations malheureuses. Si en plus il peut modifier les propriétés d'un ActiveX, cela devient fou.

    Qu'elle est la finalité ?

    Nom : 210208 dvp ActiveX prptégé.png
Affichages : 90
Taille : 55,4 Ko
    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

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Bonjour,

    je conseillerai naïvement de proposer le bouton dans un ruban personnalisé, ca peut t'ouvrir d'autres approches visuellement et techniquement parlant
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #12
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Merci à tous, je vais regarder tout cela attentivement,

    je rappelle la finalité de ma question :

    J'ai une feuille protégée avec l'option "Modifier les objets".

    J'ai aussi dans la feuille un bouton associé à une macro, du coup l'utilisateur peut le sélectionner avec clic droit puis le supprimer

    C'est cela que je veux éviter d'une manière ou d'une autre. Je pensai à "protéger" l'objet "bouton"

    PS : mon bouton est un bouton de formulaire pas d'ActiveX
    Il ne savait pas que c'était impossible, donc il l' a fait...

  13. #13
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    J'ai aussi dans la feuille un bouton associé à une macro, du coup l'utilisateur peut le sélectionner avec clic droit puis le supprimer
    PS : mon bouton est un bouton de formulaire pas d'ActiveX
    Je t'ai déjà dit qu'un activeX, il ne peut pas être sélectionné par clic droit.
    Remplace ton bouton de formulaire par un bouton activeX.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  14. #14
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Oui j'ai fais, le clic droit est bien désactivé.

    Mais mon bouton à une forme que je n'arrive pas à attribuer au bouton activeX
    Il ne savait pas que c'était impossible, donc il l' a fait...

  15. #15
    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 755
    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 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais mon bouton à une forme que je n'arrive pas à attribuer au bouton activeX
    Il est tout à fait possible d'assigner une macro à d'autres objets tels que les formes (commande Formes du groupe Illustrations de l'ongle [Insertion]) ainsi tu peux avoir un triangle, un rond, etc que tu peux mettre en couleur, réduire ou augmenter la taille, bref à ta sauce
    On peux également associer une macro à une image

    Je n'ai toujours pas compris la raison de supprimer le bouton après avoir activer la macro
    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

  16. #16
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Non il n'est pas question de supprimer le bouton, au contraire je ne veux pas que l'utilisateur puisse le supprimer.

    Hors comme ma feuille est protégée avec l'option "Modifier les objets" il peut le faire par erreur malgré le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetBeforeRightClick(ByVal sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
    J'ai bien compris pourquoi.
    Bien noté également qu'un bouton ActiveX ne peux pas être supprimé.

    Donc le code ci-dessus et un bouton ActiveX associé à ma macro au lieu d'un bouton de formulaire me convient sauf que mon bouton est dessiné avec un dessin "Parchemin Horizontal xx" et que je ne sais pas affecté ce dessin à un bouton ActiveX
    Il ne savait pas que c'était impossible, donc il l' a fait...

  17. #17
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut Placer une image sur un bouton ActiveX situé sur une feuille de calcul.
    Edit :

    Macro pour placer une image sur un bouton ActiveX
    L'image doit être dans le même répertoire que le classeur.
    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
    Option Explicit
    Sub PlacerImageSurBoutonActiveX()
    Dim wsh As Worksheet              'Feuille
    Dim obj As OLEObject              'Objet OLE de la feuille
    Dim btn As MSForms.CommandButton  'Bouton
    Dim img As String                 'Image.FullName
     
      img = ThisWorkbook.Path & "\ImageBouton.jpg"
      Set wsh = ThisWorkbook.Worksheets("Feuil1")
      Set obj = wsh.OLEObjects("CommandButton1")
      Set btn = obj.Object
      btn.Caption = Empty
      btn.Picture = LoadPicture(img)
      btn.PicturePosition = fmPicturePositionCenter
      btn.AutoSize = True
     
    End Sub
    Une fois l'mage chargée, enregistrer le classeur, l'image est aussi enregistrée.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

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

Discussions similaires

  1. [WD17] Clic d'un bouton particulier
    Par didiflo dans le forum WinDev
    Réponses: 1
    Dernier message: 15/12/2014, 14h38
  2. Réponses: 2
    Dernier message: 02/12/2011, 08h56
  3. Protéger un bouton par mdp
    Par peponne31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/09/2009, 11h41
  4. Protéger un bouton
    Par hassan1234 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/08/2008, 17h29
  5. [JPasswordField]Protéger un bouton par Mot de passe
    Par leminipouce dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 23/12/2006, 20h39

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