J'essaie d'ajouter un bloc de construction personnalisé en cliquant sur un bouton dans MS Word 10. Vous trouverez ci-dessous le code associé à mon bouton activeX.
Private Sub CommandButton1_Click()
Dim objTemplate As Template
Dim objBB As BuildingBlock
' Set the template to store the building block
Set objTemplate = ActiveDocument.AttachedTemplate
' Access the building block through the type and category
Set objBB = objTemplate.BuildingBlockTypes(wdTypeCustom5) _
.Categories("General").BuildingBlocks("Experience")
' Insert the building block into the document replacing any selected text.
objBB.Insert Selection.Range
End Sub
Mon problème est que, comme ce code est appelé en un clic, le bouton devient "Selection.Range" et est donc remplacé. J'ai cherché partout des codes alternatifs qui mentionnaient des spécifications "où" différentes et je n'ai rien trouvé.
Je n'ai trouvé que deux liens (je ne trouve pas les URL dans mon historique, mettre à jour sous peu)
Il mentionnait "Paragraphs (1)" au lieu de "Selection.Range", mais il s’agit d’un emplacement absolu alors que j’aurais besoin de quelque chose de relatif (Avant le bouton)
Utilisation de la méthode InsertBefore qui, je suppose, s'applique uniquement au texte (il a été utilisé pour insérer du texte dans l'exemple), car lorsque je l'ai essayé pour créer des blocs, cela n'a pas fonctionné.
PS je suis relativement nouveau à VBA
la source