Public Const Classeur1 = "Grades.xls"
Public Const Classeur2 = "Carriere.xls"
Public Const Classeur3 = "Annexes.xls"
Public Const Classeur4 = "Déco.xls"
Public Const Classeur5 = "Biblio.xls"
Sub Dico()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim Chemin As String, NDGusse As String
Dim C As Range
Dim derligne As Integer, i As Integer
Chemin = ThisWorkbook.Path
derligne = Range("C65000").End(xlUp).Row
Set WordApp = CreateObject("Word.application")
Set WordDoc = WordApp.Documents.Add(DocumentType:=0)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
WordApp.Visible = False
On Error Resume Next
For i = 2 To derligne
With WordApp.Selection
NDGusse = Range("C" & i).Text
For Each C In Range("A" & i & ":" & Range("IV" & i).End(xlToLeft).Address)
.TypeText Text:=C & vbTab
Next C
.TypeParagraph
Call IntegreFichierXL(Chemin & "\" & Classeur1, NDGusse, WordApp.Selection)
Call IntegreFichierXL(Chemin & "\" & Classeur2, NDGusse, WordApp.Selection)
Call IntegreFichierXL(Chemin & "\" & Classeur3, NDGusse, WordApp.Selection)
Call IntegreFichierXL(Chemin & "\" & Classeur4, NDGusse, WordApp.Selection)
Call IntegreFichierXL(Chemin & "\" & Classeur5, NDGusse, WordApp.Selection)
If Not i = derligne Then .InsertBreak Type:=wdPageBreak
End With
Next i
MsgBox "Fin traitement"
WordDoc.SaveAs Filename:=Chemin & "\Dico.doc"
WordApp.Quit
Set WordApp = Nothing
Set WordDoc = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
'****************
Sub IntegreFichierXL(DocXL As String, NDGusse As String, WappS As Object)
Dim XLDOC As Object
Dim derligneXLDOC As Integer
Dim j As Integer, C As Range
Set XLDOC = Workbooks.Open(DocXL, , True)
derligneXLDOC = XLDOC.ActiveSheet.Range("C65000").End(xlUp).Row
For j = 2 To derligneXLDOC
If XLDOC.ActiveSheet.Range("C" & j).Text = NDGusse Then
For Each C In XLDOC.ActiveSheet.Range("F" & j & ":" & Range("IV" & j).End(xlToLeft).Address)
WappS.TypeText Text:=C & vbTab 'insère le texte
Next C
WappS.TypeParagraph 'insertion paragraphe
If Right(DocXL, 10) = "Grades.xls" Then 'mettre les grades en italique
Selection.Font.Italic = True
End If
End If
Next j
XLDOC.Close
Set XLDOC = Nothing
End Sub