2017-10-04 8 views
0

J'essaye d'obtenir qu'Excel crée automatiquement un bouton de commande si une certaine cellule contient du texte. Grâce à l'exécution de macro enregistreur et via googling, c'est là que je suis coincé.Créer un bouton de commande par valeur de cellule

Private Sub button() 

If ActiveSheet.Range("C5") = Text Then 

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _ 
    , DisplayAsIcon:=False, Left:=396.75, Top:=18.75, Width:=64.5, Height _ 
    :=26.25).Select 
Selection.Verb Verb:=xlPrimary 

End If 

End Sub 

Répondre

0

Essayez une recherche du syntax de base d'abord, Assurez-vous que votre cellule C5 a une valeur « Quelque chose »

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    If ActiveSheet.Range("C5").Value = "Something" Then 
      Dim button As OLEObject 
      Set button = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _ 
         , DisplayAsIcon:=False, Left:=396.75, Top:=18.75, Width:=64.5, Height:=26.25) 
     End If 

    button.Object.Caption = "Complete" 
    button.Name = "CommandbuttonEL1" 

    End Sub 
+0

Il fonctionne quand j'appuyez sur F5 en VBA, mais comment puis-je faire apparaître automatiquement lors de la saisie "Quelque chose" dans la cellule C5 et appuyez sur Entrée? – Erik

+0

J'ai mis à jour le code, fondamentalement vous devez mettre le code dans le changement de sélection de feuille de calcul si vous voulez que cela fonctionne quand vous tapez quelque chose et changez la cellule. –

+0

Fonctionne parfaitement maintenant. Merci. Savez-vous aussi comment je peux construire sur le code pour changer le nom sous-jacent de Commandbutton1 à par exemple "CommandbuttonEL1" ainsi que changer la légende à "Complete"? – Erik