Hi All

I want to use a template that should be used in my email function of my application.

Below is my code so how should I modify it so that I can use a template instead of having to everytime type in the body of the email.

Thanks in advance...

Dim xList As String

Private Sub ShowMail()

On Error Resume Next
Dim intX As Integer

With List1

.ListIndex = 0

For intX = 0 To .ListCount - 1
    If .Selected(intX) Then
        personel.ListIndex = .ListIndex
        xList = xList & personel.Text & ";"
    End If
    .ListIndex = .ListIndex + 1
Next intX
End With

End Sub



Private Sub Form_Load()
 
 folder = Dir("Z:\ACS\Admin\ServU\JobBook\LogBook\*.txt") 'variable folder conatins names of files in folder c:\LogBook\ with extension *.txt
    While Len(folder) <> 0 'loop while length of folder is 0 which means no file found...
        List1.AddItem Left(folder, InStr(folder, ".txt") - 1) 'add file to list, but trim .txt extension..
        folder = Dir() 'read again
    Wend
 
End Sub
 


Private Sub Picture2_Click()
 
Dim IDs As String
 
For i = 0 To List1.ListCount - 1 'do loop within all od list1 indexes
    If List1.Selected(i) Then 'If checked index is selected then ...
        filename = "Z:\ACS\Admin\ServU\JobBook\LogBook\" + List1.List(i) + ".txt" 'Construct filename, add folder and extension
        Open filename For Input As #1 'Open file for reading
        While Not EOF(1)
            Line Input #1, LineA 'Since all dates are same i will read only 1st row
        Wend
        Close #1 'Close file
            If DateDiff("d", CDate(Left(LineA, 10)), Now()) > 2 Then 'If difference between now and readed date is more than 2 days ("d")
                IDs = IDs & "ID " & List1.List(i) & " Days behind = " & DateDiff("d", CDate(Left(LineA, 10)), Now()) & Chr(13)
            End If
    End If
Next

MsgBox IDs 'Display ID's

If DateDiff("d", CDate(Left(LineA, 10)), Now()) > 2 Then

Call ShowMail
 
Dim objOL As Outlook.Application
Dim msg As Outlook.MailItem
 
Set objOL = New Outlook.Application
Set msg = objOL.CreateItem(olMailItem)
 
With msg
.To = xList
.Subject = Subject
.Body = Body
.Display
End With
 
Exit_Email:
Set objOL = Nothing
Exit Sub

End If
End Sub

Recommended Answers

All 9 Replies

I'll get to this tomorrow morning...:)

Dewald, try the following -

'(general declaration)
Dim nFileNum As Integer, sText As String, sNextLine As String, lLineCount As Long

In calling the mail event -

' Get a free file number
nFileNum = FreeFile
' Open a text file for input. inputbox returns the path to read the file
Open "Z:\ACS\Admin\ServU\JobBook\LogBook\*.txt" For Input As nFileNum
lLineCount = 1
' Read the contents of the file
Do While Not EOF(nFileNum)
   Line Input #nFileNum, sNextLine
   'do something with it
   'add line numbers to it, in this case!
   sNextLine = sNextLine & vbCrLf
   sText = sText & sNextLine
Loop
.Subject = sText
' Close the file
Close nFileNum

Hope this helps...:)

If you mean 'calling the mail event'..Is it my Showmail event or after line 59?

Thanks for the reply :)

Yip, it is. It will load the subject from the text file which is your template.

Sorry, Line 64 to 72 -

Set objOL = New Outlook.Application
Set msg = objOL.CreateItem(olMailItem)

'YOU CAN ADD IT HERE #######################################
 
With msg
.To = xList
.Subject = SText
.Body = Body
.Display
End With

Thanks! :) will test it tomorrow morning and will let you know. Looks right though :)

Cool bananas. Talk tomorrow, almost beer time....

It works :)

Thanks! I modified it a bit, but I have another problem for which I will open a new thread. Can you perhaps check it out?

Again thanks! ;)

Only a pleasure. I'll have a look. Happy coding.:)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.