View Single Post
 
Old 03-05-2020, 11:32 PM
macropod's Avatar
macropod macropod is offline Windows 7 64bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,467
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Quote:
Originally Posted by SamDsouza View Post
I Did understand the irritating and Frustrating the boilerplate part.
though i could have created the Template and coded but this time i wanted to enjoy the
food out of the boilerplate
With your guidance Shall learn something new all together in different manner
Well, if you're going to code the boilerplate text, you might as well do it efficiently. Your code has numerous redundant lines. Try:
Code:
Public Sub msWord_Structure()
Dim wdApp As Object, wdDoc As Object, wdTbl As Object, wdRng As Object, chqNobold As String, StrTxt As String
Dim custNameLen As Long, RefAcNoLen As Long, chqNoLen As Long, MyContactNosLen As Long
Const wdCollapseEnd As Long = 0
Const wdAlignParagraphCenter As Long = 1
Const wdAlignParagraphJustify As Long = 3

chqNobold = txtChqNo.Text
custNameLen = (17 + Len(cmbMyCustName.Text))
RefAcNoLen = (14 + Len(txtRefAcNo.Text))
chqNoLen = (11 + Len(chqNobold))
MyContactNosLen = (11 + Len(txtMyContactNos.Text))

StrTxt = vbCr & "Time " & txtTime.Text & vbCr & vbCr & _
  "Customer Name : " & cmbMyCustName.Text & vbCr & vbCr & _
  "Account No. " & txtRefAcNo.Text & " Chq No. " & txtChqNo.Text & vbCr & vbCr & _
  "Mobile No" & txtMyContactNos.Text & " Tel No." & vbCr & vbCr & _
  "Address of Remitter (Mandatory for Non IDBI Bank Customer)___________________________________" & vbCr & vbCr & _
  "__________________________________________" & " Email ID ______________________________________________" & vbCr & vbCr & _
 vbCr & vbCr & " Incase of NonIDBI Bank Customer Amount of Cash Deposited _____________________________________" & vbCr & vbCr '& " Beneficiary Details :"

On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err Then Set wdApp = CreateObject("Word.Application")
On Error GoTo 0
wdApp.Visible = True

Set wdDoc = wdApp.Documents.Add
With wdDoc.Range
  .Font.Name = "Tahoma"
  .Font.Size = 12
  .Paragraphs.SpaceAfter = 0
  .ParagraphFormat.Alignment = wdAlignParagraphJustify
  .Text = "RTGS/ Request Form" & vbCrLf & vbCrLf & _
      Chr(144) & "RTGS                             " & Chr(144) & "" & _
      vbCrLf & vbCrLf & "For RTGS" & vbCr
  With .Paragraphs(1).Range
    .Font.Size = 16
    .Font.Underline = True
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
  End With
  .Paragraphs.Last.Previous.Range.Font.Underline = True
  Set wdTbl = .Tables.Add(.Characters.Last, 4, 2)
  With wdTbl
    .Columns(1).Width = 300
    .Columns(2).Width = 130
    .Borders.Enable = True
    .Rows.HorizontalPosition = 5
    .Rows.VerticalPosition = 10
    With .Cell(1, 1)
      .Merge wdTbl.Cell(1, 2)
      .Range.Text = "Maximum Limit For Transaction"
      .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
    End With
    With .Cell(2, 1).Range
      .Text = "IDBI Bank Customer"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
    With .Cell(2, 2).Range
      .Text = "No Limit"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
    With .Cell(3, 1).Range
      .Text = "Non IDBI Bank Customer & Indo Nepal Remittance"
      .ParagraphFormat.Alignment = 3
    End With
    With .Cell(3, 2).Range
      .Text = "Up to INR 50,000/-"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
    With .Cell(4, 1).Range
      .Text = "Purpose of Remittance to Nepal - Family Maintenance only"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
    With .Cell(4, 2).Range
      .Text = "Yes / No"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
  End With
  .InsertAfter StrTxt
  Set wdRng = .Paragraphs(18).Range
  With wdRng
    .Start = .Start + 5
    .End = .End - 1
    .Font.Bold = True
  End With
End With
End Sub
Quote:
Originally Posted by SamDsouza View Post
After Para 14 somehow it does not detect as Paragraph. the issue lies here.

By the way i checked "Time" was at paragraphs 17 with the following threadVBA Express : Word - Get Line and Paragraph Number

And with above only i put the paragraph as 17 as per coding in #1 but was unsuccessfull
Without wanting to place too fine a point on it, your code was trying to modify the paragraph before you'd created it (i.e. you hadn't written 'txtword' to the document)...
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote