1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Sub InsererDemande()
'nécessite d'activer la référence Microsoft Word xx.x Object Library
Dim WordApp As Object
Dim WordDoc As Object
Dim Fichier As Variant
Dim Pos, DerniereLigne As Integer
Dim NomFichier, chemin, nomFichierSansExtension As String
'affichage boite de dialogue pour choisir un document Word
Fichier = Application.GetOpenFilename("Text Files (*.doc*), *.doc*")
If Fichier = False Then Exit Sub
'le document Word est supposé fermé avant le lancement de la macro
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = False 'pour que word reste masqué pendant l'opération
Set WordDoc = WordApp.Documents.Open(Fichier) 'ouverture du fichier Word
WordDoc.Unprotect
NomFichier = WordDoc
Pos = InStr(1, NomFichier, ".", 1)
nomFichierSansExtension = Left(NomFichier, Pos - 1)
chemin = WordDoc.Path & "\" & WordDoc
'Identification de la première ligne vide pour y recopier les données
DerniereLigne = Range("A65535").End(xlUp).Row + 1
Cells(DerniereLigne, 12) = WordDoc.Sections(1).Headers(1).Range.Fields(3).Result.Text
Cells(DerniereLigne, 16) = Now
Cells(DerniereLigne, 2) = WordDoc.Fields(3).Result.Text
Cells(DerniereLigne, 3) = WordDoc.Fields(2).Result.Text
Cells(DerniereLigne, 4) = WordDoc.Fields(1).Result.Text 'copie du champ texte Word
Cells(DerniereLigne, 7) = WordDoc.Fields(5).Result.Text
Cells(DerniereLigne, 5) = WordDoc.Fields(4).Result.Text
Cells(DerniereLigne, 1) = nomFichierSansExtension
Cells(DerniereLigne, 1).Select
Cells(DerniereLigne, 1).FormulaLocal = _
"=LIEN_HYPERTEXTE(""" & Fichier & """;""" & nomFichierSansExtension & """)"
WordDoc.Close False 'ferme le document Word sans sauvegarde
WordApp.Quit 'ferme l'application Word
End Sub |
Partager