![]() |
|
|
|
#1
|
|||
|
|||
|
See Using VBA to Insent an AutoText Entry or other Building Block.
Have your macro and the building block in the same template and use the fullname of ThisDocument as your source location. |
|
#2
|
|||
|
|||
|
Quote:
I have the template in Code:
Application.Templates( _
"C:\Users\gorka\Desktop\IT GATu 2.dotm"). _
BuildingBlockEntries("HOME AND EXPOSURE").Insert Where:=Selection.Range, RichText _
:=True
If they try to rework the document from that new location, the building blocks no longer work. Note: folder with random number are folders that they must name as a long number. For example: L:\02.- Reports 2022\File\1725849\IT GATu 2.dotm Last edited by gorkac; 03-18-2022 at 12:45 PM. Reason: One more question. |
|
#3
|
|||
|
|||
|
It's unclear to me whether your users are saving a copy of the template to the same folder in which they save a copy of the file? In other words, for every file they make, they also make a copy of the template??
My understanding is that DOCM files cannot contain building blocks; only templates can. Unless I'm wrong, what I would do is modify your macros per the code below: Code:
Sub CustomizeLocalFilepathsToUsername() ' 03/18/2022
' Create a variable for the filepath to your template:
Dim strFilepath As String
' Use the Environ("UserProfile") function to get the first portion of the
' user's file path -- that is, C:\User\username -- and concatenate with the
' rest of the path to your template in the STARTUP folder:
strFilepath = Environ("UserProfile") & _
"\AppData\Roaming\Microsoft\Word\STARTUP\IT GATu 2.dotm"
' Here's what the full string looks like:
Debug.Print strFilepath
' You need to run this line to access your template's building blocks:
Application.Templates.LoadBuildingBlocks
' Modify the building-block paths in your template by replacing the hard-
' coded paths to the template with the "strFilepath" variable:
Application.Templates(strFilepath).BuildingBlockEntries("HOME AND EXPOSURE").Insert _
Where:=Selection.Range, RichText:=True
End Sub
C:\Users\%username%\AppData\Roaming\Microsoft\Word \STARTUPNote that your users won't be able to create new documents based on this template if you put it here. If they need to do that, then it'd be better to store the template in their default templates location, which, unless they've changed the default location, is here: C:\Users\%username%\AppData\Roaming\Microsoft\Temp lates |
|
#4
|
|||
|
|||
|
Thanks in advanced.
STEP 1: Captura1.png This file cannot be removed, it is just to copy and paste to the new path. Content blocks in this file: Code:
Application.Templates( _
"L:\06. MODELOS DE DOCUMENTOS\01 ATESTADOS\ACCIDENTES DE CIRCULACIÓN\BAEI\Informe Tecnico\BAEI - INFORME TÉCNICO.dotm"). _
BuildingBlockEntries("INICIO Y EXPOSICION DE HECHOS").Insert Where:=Selection.Range, RichText _
:=True
New location: L:\02.- ATESTADOS 2022\ATESTADOS PAMPLONA\2. ACCIDENTES CIRCULACION\unknown variable folder name\BAEI – INFORME TECNICO.docm Captura7.PNG STEP 3: Ask the user for the name of that new folder. Captura5.PNG Worker copy and paste to that new location the file: L:\02.- ATESTADOS 2022\ATESTADOS PAMPLONA\2. ACCIDENTES CIRCULACION\AT-14367894\BAEI – INFORME TECNICO.docm Captura6.PNG STEP 4: THIS IS WHAT I NEED: Code that replaces the content block path of the original file with the new path to do this in the file that the worker has taken to its new location: REPLACES: Code:
Application.Templates( _
"L:\06. MODELOS DE DOCUMENTOS\01 ATESTADOS\ACCIDENTES DE CIRCULACIÓN\BAEI\Informe Tecnico\BAEI - INFORME TÉCNICO.dotm"). _
BuildingBlockEntries("INICIO Y EXPOSICION DE HECHOS").Insert Where:=Selection.Range, RichText _
:=True
Code:
Application.Templates( _
" L:\02.- ATESTADOS 2022\ATESTADOS PAMPLONA\2. ACCIDENTES CIRCULACION\AT-14367894\BAEI – INFORME TECNICO.docm"). _
BuildingBlockEntries("INICIO Y EXPOSICION DE HECHOS").Insert Where:=Selection.Range, RichText _
:=True
Can be done? |
|
#5
|
|||
|
|||
|
Quote:
|
|
#6
|
|||
|
|||
|
Quote:
In that situation, the location of your building block for your code will be in the template: Code:
ThisDocument.Fullname If the building block is used in multiple templates, it should be in a loaded global template and have a unique name. In that case, look at the macro for situation 3 on my linked page. |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Mapped Content Controls in Building Blocks? | Charles Kenyon | Word | 6 | 05-21-2021 05:40 PM |
| Stop hyperlink to a file from changing address - causes problems with pdf | c.davidson | Word | 1 | 09-15-2020 11:11 PM |
New building blocks have stopped working (Word 2016)
|
Genericname1111 | Word | 0 | 05-20-2020 04:17 PM |
Get image path from content control field - NO VBA possible
|
thoerzer | Word | 5 | 10-10-2019 12:10 AM |
| Changing Absolute path to Relative in a Macro | MrKim | Excel Programming | 13 | 01-26-2019 02:18 PM |