OVH Cloud OVH Cloud

En VBA inactiver bouton..

8 réponses
Avatar
Bruno
Bonjour à tous (de Bordeaux),
Je développe une application de gestion. Sur une feuille j'ai inséré des
boutons (formulaire je précise),quand j'appuie sur un , je veux que cela
rende inopérant certains.
La propriété suivante ne fonctionne pas:
Worksheets(1).Shapes("Bouton 2").Enabled = False
Je me débrouille avec:
Worksheets(1).Shapes("Bouton 2").OnAction = ""
que je repositionne ultérieurement ds le code.
En insérant un bouton objet contrôle la propriété Enabled n'est pas plus
accessible...

Avez vous une idée?
Merci

8 réponses

Avatar
Jacques93
Bonjour Bruno,

Peut être :

Worksheets(1).OLEObjects("NomDuBouton").Enabled = False

Bonjour à tous (de Bordeaux),
Je développe une application de gestion. Sur une feuille j'ai inséré des
boutons (formulaire je précise),quand j'appuie sur un , je veux que cela
rende inopérant certains.
La propriété suivante ne fonctionne pas:
Worksheets(1).Shapes("Bouton 2").Enabled = False
Je me débrouille avec:
Worksheets(1).Shapes("Bouton 2").OnAction = ""
que je repositionne ultérieurement ds le code.
En insérant un bouton objet contrôle la propriété Enabled n'est pas plus
accessible...

Avez vous une idée?
Merci






--
Cordialement,

Jacques.

Avatar
michdenis
Bonjour Bruno,

Si tu le désires, tu peux utiliser la propriété Locked de tes boutons de commande (formulaire). Par exemple, permettre à tes
procédures sous ces boutons de commande de s'exécuter seulement si la propriété Locked de la "shape" est égale à "False"

Et en début de procédure pour chaque bouton issue de la barre formulaire, tu copies cette ligne de code :

Adapte le nom (code name) de la feuille selon l'endroit où se trouve le bouton de commande...
If Feuil1.Shapes(Application.Caller).Locked = True Then Exit Sub
Ou cette syntaxe :
Worksheets(1).Shapes(Application.Caller).Locked = True Then Exit Sub


Salutations!




"Bruno" a écrit dans le message de news: %23%
Bonjour à tous (de Bordeaux),
Je développe une application de gestion. Sur une feuille j'ai inséré des
boutons (formulaire je précise),quand j'appuie sur un , je veux que cela
rende inopérant certains.
La propriété suivante ne fonctionne pas:
Worksheets(1).Shapes("Bouton 2").Enabled = False
Je me débrouille avec:
Worksheets(1).Shapes("Bouton 2").OnAction = ""
que je repositionne ultérieurement ds le code.
En insérant un bouton objet contrôle la propriété Enabled n'est pas plus
accessible...

Avez vous une idée?
Merci
Avatar
anonymousA
bonjour

Worksheets(1).Shapes("Bouton 2").ControlFormat.Enabled = False

A+

Bonjour à tous (de Bordeaux),
Je développe une application de gestion. Sur une feuille j'ai inséré des
boutons (formulaire je précise),quand j'appuie sur un , je veux que cela
rende inopérant certains.
La propriété suivante ne fonctionne pas:
Worksheets(1).Shapes("Bouton 2").Enabled = False
Je me débrouille avec:
Worksheets(1).Shapes("Bouton 2").OnAction = ""
que je repositionne ultérieurement ds le code.
En insérant un bouton objet contrôle la propriété Enabled n'est pas plus
accessible...

Avez vous une idée?
Merci





Avatar
Bruno
Merci à ceux qui ont répondus.
La solution avec .Controlformat fonctionne dans tous les cas.
Celle avec .Oleobjects fonctionne s'il s'agit d'1 bouton inséré en tant que
contrôle et non pas un bouton formulaire.
Avatar
Jacques93
Bonjour Bruno,
Merci à ceux qui ont répondus.
La solution avec .Controlformat fonctionne dans tous les cas.
Celle avec .Oleobjects fonctionne s'il s'agit d'1 bouton inséré en tant que
contrôle et non pas un bouton formulaire.




Peux tu me préciser la différence entre les deux ?
Merci d'avance.

--
Cordialement,

Jacques.

Avatar
AV
Utiliser l'objet "DrawingObjects" qui est plus polyvalent que "Shapes" :

Worksheets(1).DrawingObjects("Bouton 1").Enabled = False

AV
Avatar
anonymousA
bonjour,

le bouton de la barre d'outils formulaires n'appartient pas à la classe
d'objets OLEOBJECTS bien qu'il parait en avoir toutes les
caractéristiques apparentes extérieures.C'est le bouton de la barre
d'outils controles qui appartient à cett classe d'objets.

A+

Bonjour Bruno,

Merci à ceux qui ont répondus.
La solution avec .Controlformat fonctionne dans tous les cas.
Celle avec .Oleobjects fonctionne s'il s'agit d'1 bouton inséré en
tant que contrôle et non pas un bouton formulaire.



Peux tu me préciser la différence entre les deux ?
Merci d'avance.




Avatar
Jacques93
Bonjour anonymousA,

Merci de la précision.

bonjour,

le bouton de la barre d'outils formulaires n'appartient pas à la classe
d'objets OLEOBJECTS bien qu'il parait en avoir toutes les
caractéristiques apparentes extérieures.C'est le bouton de la barre
d'outils controles qui appartient à cett classe d'objets.

A+



--
Cordialement,

Jacques.