Now I receive "Could Not Set the List Property, Invalid Property Value".
I'll continue playing with what you provided to me to see if I can't figure this out on my own, but in the mean time here's my code in its entirety and not just my intialize event:
Option Explicit
Private oVars As Variables
Private oSource1 As Document
Private oTable As Table
Private oRng As Range
Private strWidth As String
Private i As Long, j As Long, k As Long
Private m As Long, n As Long
Private Sub CmdBtnCancel_Click()
Unload Me
End Sub
Private Sub CommandButton1_Click()
With ActiveDocument
.Variables("Salutation").Value = Me.TextBox1.Text
.Variables("Attention").Value = Me.TextBox2.Text
.Variables("SentBy").Value = Me.TextBox3.Text
.Variables("Period").Value = Me.TextBox4.Text
.Variables("FileUnder").Value = Me.TextBox5.Text
.Variables("Amount").Value = Me.TextBox6.Text
.Fields.Update
End With
Set oVars = ActiveDocument.Variables
oVars("Address").Value = Me.ListBox1.Column(1) & vbCr & _
Me.ListBox1.Column(2) & vbCr & _
Me.ListBox1.Column(3) & vbCr & _
Me.ListBox1.Column(4)
oVars("1").Value = Me.ListBox2.Column(0)
oVars("2").Value = Me.ListBox2.Column(1)
oVars("3").Value = Me.ListBox2.Column(2)
oVars("4").Value = Me.ListBox2.Column(3)
oVars("5").Value = Me.ListBox2.Column(4)
oVars("6").Value = Me.ListBox2.Column(5)
oVars("7").Value = Me.ListBox2.Column(6)
oVars("8").Value = Me.ListBox2.Column(7)
oVars("9").Value = Me.ListBox2.Column(8)
oVars("10").Value = Me.ListBox2.Column(9)
oVars("11").Value = Me.ListBox2.Column(10)
oVars("12").Value = Me.ListBox2.Column(11)
oVars("13").Value = Me.ListBox2.Column(12)
oVars("14").Value = Me.ListBox2.Column(13)
oVars("15").Value = Me.ListBox2.Column(14)
oVars("16").Value = Me.ListBox2.Column(15)
oVars("17").Value = Me.ListBox2.Column(16)
oVars("18").Value = Me.ListBox2.Column(17)
oVars("19").Value = Me.ListBox2.Column(18)
oVars("20").Value = Me.ListBox2.Column(19)
WriteTextToBM "Closing", Me.ListBox3.Column(1)
WriteTextToBM "Name", Me.ListBox3.Column(0)
WriteTextToBM "Position", Me.ListBox3.Column(3)
InsertBBInBM "SigImage", Me.ListBox3.Column(2)
ActiveDocument.Fields.Update
Unload Me
End Sub
Private Sub Userform_Initialize()
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object
Dim cRows As Long
Dim cCols As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim strWidth As String
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("C:\Templates\TemplateDocs\ClientInfo.xlsx")
Set xlWS = xlWB.Worksheets(1)
Set oSource1 = Documents.Open(FileName:="C:\Templates\TemplateDocs\Addresses.docx", _
AddToRecentFiles:=False, _
Visible:=False)
Set oTable = oSource1.Tables(1)
'Get the number of list members (i.e., table rows - 1 if header row is used)
i = oTable.Rows.Count - 1
'Get the number of list member attributes (i.e., table columns)
j = oTable.Columns.Count
'Set the number of columns in the Listbox
With Me.ListBox1
.ColumnCount = j
strWidth = .Width - 2
For k = 2 To j
strWidth = strWidth & ";" & 0
Next k
.ColumnWidths = strWidth
'Load list members into an array
ReDim myArray(i, j)
For n = 0 To j - 1
For m = 0 To i - 1
Set oRng = oTable.Cell(m + 2, n + 1).Range
oRng.End = oRng.End - 1
myArray(m, n) = oRng.Text
Next m
Next n
'Populate the ListBox using the array
.List() = myArray
.ListIndex = 0
End With
oSource1.Close SaveChanges:=wdDoNotSaveChanges
ListBox2.ColumnCount = cCols
With Me.ListBox2
cRows = xlWS.Range("A1").CurrentRegion.Rows.Count
cCols = xlWS.Range("A1").CurrentRegion.Columns.Count
.ColumnCount = cCols
strWidth = .Width - 2
For k = 2 To cCols
strWidth = strWidth & ";" & 0
Next k
.ColumnWidths = strWidth
For i = 2 To cRows
.AddItem xlWS.Cells(i, 1)
For j = 1 To cCols
.List(.ListCount - 1, j) = xlWS.Cells(i, j + 1)
Next j
Next i
End With
Set xlWS = Nothing
Set xlWB = Nothing
xlApp.Quit
Set xlApp = Nothing
With Me.ListBox3
.ColumnCount = 4
.ColumnWidths = "150;0;0;0"
.AddItem "NAME1"
.List(0, 1) = "Yours truly,"
.List(0, 2) = "bbNAME1"
.List(0, 3) = "Job Title"
.AddItem "NAME2"
.List(1, 1) = "Yours truly,"
.List(1, 2) = "bbNAME2"
.List(1, 3) = "Job Title"
.AddItem "NAME3"
.List(2, 1) = "Yours truly,"
.List(2, 2) = "bbNAME3"
.List(2, 3) = "Job Title"
.AddItem "NAME4"
.List(3, 1) = "Yours truly,"
.List(3, 2) = "bbNAME4"
.List(3, 3) = "Job Title"
.AddItem "NAME5"
.List(4, 1) = "Yours truly,"
.List(4, 2) = "bbNAME5"
.List(4, 3) = "Job Title"
End With
End Sub
Sub WriteTextToBM(ByRef strName As String, strText As String)
Dim oRng As Word.Range
Set oRng = ActiveDocument.Bookmarks(strName).Range
oRng.Text = strText
ActiveDocument.Bookmarks.Add strName, oRng
End Sub
Sub InsertBBInBM(ByRef strName As String, strBBName As String)
Dim oRng As Word.Range
Set oRng = ActiveDocument.Bookmarks("SigImage").Range
Set oRng = ActiveDocument.AttachedTemplate.BuildingBlockTypes(wdTypeAutoText).Categories _
("General").BuildingBlocks(strBBName).Insert(Where:=oRng, RichText:=True)
ActiveDocument.Bookmarks.Add "SigImage", oRng
End Sub