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?
Vous devez vous connecter pour publier un commentaire.
SUIVI
Si vous connaissez le nom du bouton de commande, puis vous pouvez modifier les propriétés de ce type.
Vous pouvez également combiner les deux ci-dessus comme ceci
Et si vous avez besoin d'itérer sur tous les boutons, puis utiliser ce code.
Application.Caller
?Supposons que vous avez un bouton de commande (objet OLE) avec le nom de "cmdOriginal' et vous souhaitez copier ce bouton et de le coller sur la même workheet et modifier le nom et la légende du bouton nouveau dans "cmdButtonCopy" et "Ceci est une copie".
Le bouton nouvellement ajouté a l'indice le plus élevé dans le OLEObjects collection!
Placez le code suivant dans la section de code de la feuille de calcul