Excel to Word doc / File Patch -> cell

beczer

New Member
Joined
Nov 21, 2016
Messages
49
Hi there

I am not advanced Vba programmer and I need your help. Could please review my code and tell how to change the DOC(template) file path ? In other words, I would like to use 3 different word templates so I can't put file path in VBA code as it is. I need to put a reference to cell where there is a file path.
A1 - C:\Users\Tom\Desktop\doc1.docx
A2 - C:\Users\Tom\Desktop\doc2.docx
A3 - C:\Users\Tom\Desktop\doc1.docx

Another thing, I would also like to add a possiblity to save DOCs and PDFs in created folder by VBA.

My current VBA code:

Code:
Sub CreateWordTemplate()




    Dim wdApp As Word.Application
    Dim SaveName As String
    Dim FileExt As String
    Set wdApp = CreateObject("Word.Application")


    With wdApp
        '.Visible = True
        '.Activate
        
        .Documents.Add "C:\Users\name\Desktop\doc1.docx"




    Range("A1", Range("A1").End(xlDown).End(xlToRight)).Copy
        
    
    .Selection.GoTo What:=-1, Name:="bookmark1"
    .Selection.PasteSpecial


FileExt = ".pdf"
                            
                 SaveName = Environ("UserProfile") & "\Desktop\doc1.docx " & _
        Format(Now, "yyyy-mm-dd hh-mm-ss") & ".pdf"




                .ActiveDocument.ExportAsFixedFormat OutputFileName:=SaveName, ExportFormat:=17
              
        
       SaveName = Environ("UserProfile") & "\Desktop\doc1.docx " & _
        Format(Now, "yyyy-mm-dd hh-mm-ss") & ".docx"




    If .Version <= 12 Then
        .ActiveDocument.SaveAs SaveName
    Else
    .ActiveDocument.SaveAs2 SaveName
    End If


    .ActiveDocument.Close
    .Quit


    End With


    Set wdApp = Nothing
End Sub

Thank you in advance !!!

Tomasz
 
Last edited by a moderator:
Hi Macropod

Thanks for your support. Should I change something in above code ? I'm asking because it doesn't work :(

Regarding saving the outputs to a folder created by VBA, I would also like to create a folder based on text in cell e.g C1 = Reports 22/11/2016. - folder name

Thanks

Tomasz
 
Upvote 0

Excel Facts

Do you hate GETPIVOTDATA?
Prevent GETPIVOTDATA. Select inside a PivotTable. In the Analyze tab of the ribbon, open the dropown next to Options and turn it off
I'm asking because it doesn't work
If you want help with something, you're going to have to be far more descriotive than that! Precisely what doesn't work? In what way doesn't it work? What error messages, if any, do you get? What data are in cells A1-A3 on the active sheet?

As for the folder creation, you cannot use anything like 'Reports 22/11/2016' (which you've indicated to be in C1), because a date in that format cannot be used for a folder name.
 
Upvote 0
Ok, sorry Macropod. You are right.

Error: compile error: method or data member not found / first line of code - highlighted

Regarding Folder Creation, that's right. So let's say C1=text, without date.

Thanks once again!
 
Upvote 0
Error: compile error: method or data member not found / first line of code - highlighted
The first code line cannot produce that error - not even if you hadn't set a reference to the Word library!
I did, however, pick up such an error further down. Change:
StrName = Split(StrName, .docx)(0) & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")
to:
StrName = Split(StrName, ".docx")(0) & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")
Regarding Folder Creation, that's right. So let's say C1=text, without date.
And where is that folder to be created? Your cell contents don't mention the drive or anything else about the path to that folder. Neither do you mention anything about how or whether that new folder might be used in the code. At a fairly basic level, you could use code like:
Code:
On Error Resume Next
MkDir (StrPth & xlWkSht.Range("C3").Value)
On Error GoTo 0
or, with a bit more finesse:
Code:
If Dir(StrPth & xlWkSht.Range("C3").Value, vbDirectory) = "" Then MkDir StrPth & xlWkSht.Range("C3").Value
where StrPth holds the path (including the final "") to wherever the folder name in C3 is to be created.
 
Last edited:
Upvote 0
Macropod THANK YOU !

It works quite good now. There are just 3 things I would like to change and ask you to help with this:


1. After creating sucessfully DOC&PDF there is an error -> Run-time error "9" Subscript out of range
Highlited: StrName = Split(StrName, ".docx")(0) & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")


2. I can select template path from cell A1-A3 and it works perfect but I would like to change the name of generated files (now it is the same as template name + date). So Is it possible to use template from path in cell A1-A3 and assign new name to DOC&PDF file form different cell e.g B1 ?


3. The last question. How can I save generated files DOC&PDF directly in generated Folder from cell C3


Thank you in advance for Your patience and support.
 
Upvote 0
After creating sucessfully DOC&PDF there is an error -> Run-time error "9" Subscript out of range
Highlited: StrName = Split(StrName, ".docx")(0) & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")
That would be because one or more cells in the A1-A3 range is empty. You said all three would have data, so I didn't bother with error-checking code.

I can select template path from cell A1-A3 and it works perfect but I would like to change the name of generated files (now it is the same as template name + date). So Is it possible to use template from path in cell A1-A3 and assign new name to DOC&PDF file form different cell e.g B1 ?
Of course you can. The only reason the original name was included was because that's what you specified. BTW, you are not working with templates; you're working with documents. You should learn to name things correctly. Doing otherwise leads to confusion.
The last question. How can I save generated files DOC&PDF directly in generated Folder from cell C3
By specifying that as the filepath. You still haven't said what the rest of that path is, though.
 
Last edited:
Upvote 0

Forum statistics

Threads
1,213,520
Messages
6,114,099
Members
448,548
Latest member
harryls

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top