Private WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_WorkbookOpen(ByVal wb As Workbook)
Call MacroAutoJB
End Sub
Sub MacroAutoJB()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim oWdApp As Object
Dim i As Byte
Dim sChemin As String
Dim wb As Workbook
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
On Error Resume Next
Dim nom As String
Dim sName As String
Dim sPath As String
On Error Resume Next
Dim j As Integer
j = ActiveSheet.UsedRange.Rows.Count
Dim n As Byte
n = Cells(1, Columns.Count).End(xlToLeft).Column
If ActiveWorkbook.Name Like "Class*.xls" Then
user = Environ("username")
sName = ActiveWorkbook.Name
sPath = "C:\Documents and Settings\" & user & "\My Documents\"
sName = Replace(sName, ".xls", "_Word")
MkDir sName
For j = 2 To j
Set WordApp = CreateObject("word.application") 'ouvre session word
nom = Sheets(1).Cells(j, 2)
mail = Sheets(1).Cells(2, n)
Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\" & user & "\ClassJb.doc")
Set oWdApp = CreateObject("Word.Application")
Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\ClassJb.doc")
For i = 1 To n - 1
'les signets du document Word sont nommés Sig1 , Sig2 , Sig3
WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) ' enregistre la ligne selectionné
Next i
WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2)
WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n)
On Error Resume Next
nom = Replace(nom, ":", "") ' eliminer les caracteres speciaux dans les nom des DOC pour l enregistrement
nom = Replace(nom, """", "")
nom = Replace(nom, "/", "")
nom = Replace(nom, "\", "")
nom = Replace(nom, "*", "")
nom = Replace(nom, "?", "")
nom = Replace(nom, "<", "")
nom = Replace(nom, ">", "")
nom = Replace(nom, "|", "")
WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc"
WordApp.Visible = False 'affiche le document Word
oWdApp.Quit
ActiveDocument.Close True
WordApp.Quit
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = nom
objMessage.From = "Server@domain.com"
objMessage.To = mail
objMessage.AddAttachment (sPath & sName & "\" & nom & ".doc")
objMessage.TextBody = "Bonjour" & "" & vbNewLine & " Le document que vous souhaiter l'exporter en document WORD a été envoyer le " & Now & vbNewLine & _
"Ce mail est généré automatiquement" & vbNewLine & _
"" & vbNewLine & _
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.168.55.150"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
Next j
ActiveWorkbook.Close
End Sub