vba code to batch print forms and save as pdf into specific folders

mulan571

New Member
Joined
Jul 16, 2014
Messages
16
Hi,

I created a code to batch print forms, save as pdfs into 1 specific folder (Individual PDF Files)
Code:
Form4T.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\sales\Individual PDF Files\" & myCell.Value & " " & Format(Date, "mm-dd-yyyy")

I would like to break it down further so the path file will change to something like this:
Code:
"\\sales\" & Agency.Value & "\" & Rep.Value & "\" & myCell.Value & " " & Format(Date, "mm-dd-yyyy")

The both the agency & reps are variables just like myCell.

Here is a copy of my code that prints these forms:
Code:
Sub PrintUsingDatabase()    Dim FormWks As Worksheet
    Dim DataWks As Worksheet
    Dim myRng As Range
    Dim myCell As Range
    Dim iCtr As Long
    Dim myCustomer As Variant

    Set FormWks = Worksheets("Standard Form")
    Set Form4T = Worksheets("4T Form")
    Set FormSC = Worksheets("SC Form")
    Set DataWks = Worksheets("Data")


    myCustomer = Array("A6")


    With DataWks

        Set myRng = .Range("E5", .Cells(.Rows.Count, "E").End(xlUp))
    End With


    For Each myCell In myRng.Cells
        With myCell
                'if the row is not marked, do nothing
            If IsEmpty(.Offset(0, -3)) Then
                
                'if print 4 tier customer
            ElseIf InStr(.Offset(0, -4), "4T") Then
                .Offset(0, -3).ClearContents 'clear mark for the next time
                For iCtr = LBound(myCustomer) To UBound(myCustomer)
                    Form4T.Range(myCustomer(iCtr)).Value _
                        = myCell.Offset(0, iCtr).Value
                Next iCtr
                Application.Calculate


                Form4T.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\sales\Individual PDF Files\" & myCell.Value & " " & Format(Date, "mm-dd-yyyy")
                
                lOrders = lOrders + 1
                
                'if print Special Customer
            ElseIf InStr(.Offset(0, -4), "SC") Then
                .Offset(0, -3).ClearContents 'clear makr for the next time
                For iCtr = LBound(myCustomer) To UBound(myCustomer)
                    FormSC.Range(myCustomer(iCtr)).Value _
                        = myCell.Offset(0, iCtr).Value
                Next iCtr
                Application.Calculate
                FormSC.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\sales\Individual PDF Files\" & myCell.Value & " " & Format(Date, "mm-dd-yyyy")
                
                lOrders = lOrders + 1
                
                'print for standard VRI form
            Else
                .Offset(0, -3).ClearContents 'clear mark for the next time
                For iCtr = LBound(myCustomer) To UBound(myCustomer)
                    FormWks.Range(myCustomer(iCtr)).Value _
                        = myCell.Offset(0, iCtr).Value
                Next iCtr
                Application.Calculate 'just in case
                 
                FormWks.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\sales\Individual PDF Files\" & myCell.Value & " " & Format(Date, "mm-dd-yyyy")
                
                lOrders = lOrders + 1
            End If
        End With
    Next myCell
    
    MsgBox lOrders & " orders were printed."
    
End Sub

Here's a sample of the data:

Col ACol BCol CCol DCol E
Form typeprintagencyrepcustomer
ABCSTXYZ INC
4TDEFBHZYXW CORP
SCGHICRRUST INC
I4ITHNATIONAL INC
SCMTWACPLASTICS INC

<tbody>
</tbody>

Please please please... :rolleyes:. I've been searching hi & low, trying all different types of codes and every try, my excel crashes.:oops:
 

Excel Facts

Workdays for a market open Mon, Wed, Friday?
Yes! Use "0101011" for the weekend argument in NETWORKDAYS.INTL or WORKDAY.INTL. The 7 digits start on Monday. 1 means it is a weekend.

Forum statistics

Threads
1,215,641
Messages
6,125,979
Members
449,276
Latest member
surendra75

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