De référence pour Boutons de Commande Ajoutés au Cours de l'Exécution de VBA dans Excel

Au cours de l'exécution, l'utilisateur est en mesure d'ajouter un nombre quelconque de ActiveX boutons de commande de la Feuille 1. J'ai besoin d'avoir une référence à ces nouveaux boutons avec VBA, mais je ne suis pas sûr de savoir comment.

Je sais une progression logique qui les noms de boutons, exposition: ex.

(Nœud#x2)-2=bouton de commande#=i

J'ai besoin de quelque sorte se référer à ces nouveaux boutons, je pense, est dans la ligne de ce:

Sheet1.Controls("CommandButton" & i).Select

Si quelqu'un connaît la syntaxe correcte ou une autre méthode, veuillez en informer!

Mise à JOUR

Public Sub Node_Button_Duplication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column

' Copy Node 1 button and paste in appropriate location
    ActiveSheet.Shapes("CommandButton1").Select
    Selection.Copy
    Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
    ActiveSheet.Paste
    Selection.ShapeRange.IncrementLeft 47.25
    Selection.ShapeRange.IncrementTop -13.5


End Sub

Suivi

Public Sub Node_Button_Duication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column

Dim shp As Shape

' Copy Node 1 button and paste in appropriate location
    ActiveSheet.Shapes("CommandButton1").Select
    Selection.Copy
    Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
    ActiveSheet.Paste
    Selection.ShapeRange.IncrementLeft 47.25
    Selection.ShapeRange.IncrementTop -13.5

    Debug.Print Selection.Name

    Set shp = ActiveSheet.Shapes(Selection.Name)

    With shp.OLEFormat.Object.Object
        .Caption = "Test"
        .Left = 15
        .Top = 15
    End With

End Sub

Cela me donne une erreur d'Exécution "438: cet Objet ne gère pas cette propriété ou cette méthode. Je n'ai pas particulièrement de comprendre

shp.OLEFormat.Object.Object
  • Comment est-ce que l'utilisateur crée les boutons de commande? Manuellement ou Via le Code?
  • Lorsque l'utilisateur clique sur un "Nœud" bouton, un bouton ActiveX (qui existe au début de l'exécution) sera copié et collé à un endroit approprié. J'ai besoin d'avoir accès à ces nouveaux boutons afin que je puisse modifier leur comportement au cours de l'exécution. J'ai aussi bien que sur la création de boutons à plusieurs reprises avec VBA, mais vous ne savez pas ce qui est préférable.
  • Pouvez-vous mettre à jour le code ci-dessus que vous utilisez pour copier et coller le bouton existant? Ah je viens de réaliser. Est-il le même qu'il y a dans votre question précédente?
InformationsquelleAutor Ehudz | 2012-05-17