Désactiver le bouton à l'aide d'Excel VBA
Je veux désactiver un bouton avec du code VBA comme ceci:
ActiveSheet.Shapes("Button 1").ControlFormat.Enabled = False
J'ai essayé:
Set b1 = ActiveSheet.Buttons("Button 1")
b1.Enabled = False
Et:
Me.Shapes("Button 1").ControlFormat.Enabled = False
Mon bouton nom est correct, parce que cela ne me donne un message d'erreur, donc le code est complètement à travers.
Après ce script je peux cliquer sur ce bouton et le affectée macro s'exécute. Rien ne se passe lorsque je clique sur elle.
- J'ai lu qu'il y a un bug dans Excel 2010, c'est que la version que vous utilisez? Sur cette page sont quelques suggestions que vous pouvez essayer, s'il vous plaît laissez-moi savoir si l'un d'entre eux a travaillé: answers.microsoft.com/en-us/office/forum/...
- Je suis à l'aide d'office 2013. J'ai vu le thread et la solution n'est pas aussi optimal...
- Merci! Je suis à l'aide d'office 2013. J'ai vu le thread et la solution n'est pas aussi optimale.
- Malheureusement, je ne sais que le code que Mrig a écrit dans sa réponse ci-dessous. Je suis toujours sur Excel 2007.
Vous devez vous connecter pour publier un commentaire.
La désactivation d'un bouton de Formulaire (ne pas parler ActiveX ici) n'empêche pas la macro attribuée à exécuter et ne pas griser le bouton. Le code ci-dessous est exactement ce que fait basé sur la version obtenu à partir d'Excel. Si vous n'avez pas d'attribuer un nom à votre bouton de Formulaire, vous pouvez également utiliser les Boutons(1).
Si Excel version = 16 ou plus le bouton est "activé" et en fait noir et l'attribution ma macro, sinon le bouton est sur "désactivé" et en fait gris et affectation d'aucune action.
Code peut, par exemple, de séjourner dans Private Sub Worksheet_Activate() à l'intérieur de la feuille de la Feuille d'Essai"
Probablement vous êtes en utilisant ActiveX Bouton. Essayez ceci:
MODIFIER:
______________________________________________________________________________
Pour un contrôle de Formulaire Bouton de la ligne suivante
désactive le bouton c'est à dire d'événement click ne fonctionne plus mais l'apparence du bouton ne change pas, qui donne l'impression que le bouton est toujours actif. Afin de contourner cela est de changer la couleur du texte du bouton comme suit:
Et de ramener le bouton de à son état d'origine écrire:
Dim myshape As Shape: Set myshape = ThisWorkbook.Worksheets("Sheet1").Shapes("Button 2")
génère une erreur ici. Si je sépare les deux lignes, cela fonctionne bien.Je suggère de créer un bouton ombre, la forme avec exactement la même taille/position, mais de couleur différente (remplissage et/ou de texte à votre convenance) et pas de macro/action ci-joint. Alors il suffit de changer le
.visible
propriété de votre première forme. Visible = bouton est actif, pas visible le bouton est grisé et n'a pas d'action/passive.