I need someone who is fast and an expert in Word VBA. I have some code I need to alter to skip printing blank labels in a mail merge process using Microsoft Word. It should be very simply for someone who is an expert.
Here's the VBA I'm using. and here's what I'm trying to do:
I have a spreadsheet of records which I use with the mail merge function in Word. I'm running 2013 for both. I want to stop wasting blank label sheets when I print a sheet and my data set ends before the last label on a page is used. I'd like to use the remainder labels on the sheet.
I have accounting for the empty labels by entering blank records at the beginning of my data set in Excel. So, that part works well. However, because I'm using the headers to print on the label, when I print blank records, the headers print in the used labels section of a labels page. I don't want to do this because printing on the wax backing causes the ink to smudge and my employees end up smudging it on to other labels.
How would you recommend that I address this. If you think it is best to use VBA in Word, would you mind providing some code I could cut and paste? It would need to account for the fact that I have employees using this program on different laptops, so, it would need some way for them to enter the file location which varies for each user. Once they have set up the location, I wouldn't want them to be prompted to enter the file location every time they run labels.
Here's the Word VBA code I want to revise:
If using mailmerge to create the labels and the data source is a Word document, you can use the following macro to set the starting label on a partly used sheet of labels:
Macro to set the first label on a part sheet of labels for a label type mailmerge.
Dim MMMDoc As Document
Dim dsource As Document
Dim dtable As Table
Dim i As Long, j As Long
Set MMMDoc = ActiveDocument
With [url removed, login to view]
If .MainDocumentType = wdMailingLabels Then
If .State = wdMainAndDataSource Then
Set dsource = [url removed, login to view](.[url removed, login to view])
Set dtable = [url removed, login to view](1)
i = InputBox("Enter the number of labels that have already been used on the sheet.", "Set Starting Label")
If IsNumeric(i) Then
For j = 1 To i
.[url removed, login to view] BeforeRow:=.Rows(2)
.Destination = wdSendToNewDocument
[url removed, login to view] wdDoNotSaveChanges
I have expertise in vba.. Client's satisfaction is my first priority and believe in long-term relationship with my clients. Thanks Relevant Skills and Experience excel vba Proposed Milestones $30 USD - default