#1
|
|||
|
|||
Userform selectbox to insert autotext
Hello,
I made a userform in wich I have a selectionbox. If this box is selected (true) I need to insert some autotext in my document at a bookmark. I’ve created a bookmark “bm1” I’ve created an autotext with alt F3 and gave the name bm1 and saved it to my document template. I followex this link https://answers.microsoft.com/en-us/msoffice/forum/all/vba-code-for-inserting-autotext/3c38f1a5-6f8b-4df6-ab72-b440004a304d But it does not work. (I changed the bm names) Any help would be welcome |
#2
|
||||
|
||||
The code I posted in the linked thread does work, provided you identify the autotext location correctly and apply the correct names for the autotext entry and the bookmark.
Code:
Sub AutoTextToBM(strbmName As String, oTemplate As Template, strAutotext As String) 'strBMName is the name of the bookmark to fill 'oTemplate is the template with the autotext - probably ActiveDocument.AttachedTemplate 'strAutotext is the name of the autotext entry Dim oRng As Range On Error GoTo lbl_Exit With ActiveDocument Set oRng = .Bookmarks(strbmName).Range Set oRng = oTemplate.AutoTextEntries(strAutotext).Insert _ (Where:=oRng, RichText:=True) .Bookmarks.Add Name:=strbmName, Range:=oRng End With lbl_Exit: Exit Sub End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#3
|
|||
|
|||
[I will try this again tonight. But as I tried before nothing happens when I run the code. The code compiles without errors so I the code should be fine. The bookmarks are in the document and the autotext is saved in the template
QUOTE=gmayor;138239]The code I posted in the linked thread does work, provided you identify the autotext location correctly and apply the correct names for the autotext entry and the bookmark. Code:
Sub AutoTextToBM(strbmName As String, oTemplate As Template, strAutotext As String) 'strBMName is the name of the bookmark to fill 'oTemplate is the template with the autotext - probably ActiveDocument.AttachedTemplate 'strAutotext is the name of the autotext entry Dim oRng As Range On Error GoTo lbl_Exit With ActiveDocument Set oRng = .Bookmarks(strbmName).Range Set oRng = oTemplate.AutoTextEntries(strAutotext).Insert _ (Where:=oRng, RichText:=True) .Bookmarks.Add Name:=strbmName, Range:=oRng End With lbl_Exit: Exit Sub End Sub |
#4
|
||||
|
||||
If it is not working, comment out the On Error line and see where it fails.
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#5
|
|||
|
|||
Quote:
I'm doing something wrong but can't find out what it is. Code:
Sub AutoTextToBM(strbmName As String, oTemplate As Template, strAutotext As String) If CheckBox1 = True Then 'strBMName is the name of the bookmark to fill 'strbmname should be "bm1" 'oTemplate is the template with the autotext - probably ActiveDocument.AttachedTemplate 'oTemplate should be ActiveDocument.AttachedTemplate 'strAutotext is the name of the autotext entry 'strAutotext should be "tekstbm1" 'How to declare these values? Dim oRng As Range ' On Error GoTo lbl_Exit With ActiveDocument Set oRng = .Bookmarks(bm1).Range Set oRng = oTemplate.AutoTextEntries(tekstbm1).Insert _ (Where:=oRng, RichText:=True) .Bookmarks.Add Name:=bm1, Range:=oRng End With lbl_Exit: Exit Sub End If 'no errors, but also no text has been placed End Sub Last edited by aee74; 02-09-2019 at 08:53 AM. Reason: I would like to use richtext option |
#6
|
|||
|
|||
Quote:
Is it also possible to insert rich text? I have an autotext with with a header in bold and text on normal lettertype. Als i have some bullets wich I need to insert. Hope you can help |
#7
|
||||
|
||||
You have posted a sub with input variables which means this macro can't be run directly, it has to be passed some extra information in order to run). The sub also needs modification in order to use the variables that it expects to be passed in. To run it, you need a separate subroutine which passes in the variables and also to fix the function. Try
Code:
Sub Test_AutoTextToBM() AutoTextToBM strbmName:="bm1", oTemplate:=ActiveDocument.AttachedTemplate, strAutotext:="tekstbm1" End Sub Sub AutoTextToBM(strbmName As String, oTemplate As Template, strAutotext As String) 'If CheckBox1 = True Then Dim oRng As Range On Error GoTo lbl_Exit 'will avoid errors if bookmark doesn't exist or AT doesn't exist in attached template Set oRng = ActiveDocument.Bookmarks(strbmName).Range Set oRng = oTemplate.AutoTextEntries(strAutotext).Insert(Where:=oRng, RichText:=True) ActiveDocument.Bookmarks.Add Name:=strbmName, Range:=oRng lbl_Exit: Exit Sub 'End If End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#8
|
||||
|
||||
Andrew has pointed out the problem, corrected in the attached.
The process will insert whatever the autotext entry contains.
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#9
|
|||
|
|||
Quote:
It works. Great. Thanks |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
insert Autotext via button only from specified category | lodi123 | Word VBA | 0 | 07-26-2017 02:57 AM |
How do I programmatically insert and append the text from AutoText 0002 to the end of the existing t | erik816 | Word VBA | 1 | 03-09-2016 12:48 AM |
UserForm of Autotext Entries | ptmuldoon | Word VBA | 11 | 02-13-2016 09:36 AM |
How do i insert autotext using a contol toolbox checkbox | NP85 | Word VBA | 12 | 02-09-2014 03:06 PM |
Insert identifiers in AutoText snippet. Microsoft word | deepgreen | Word | 13 | 01-21-2014 05:16 PM |