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 49 50 51 52 53
| Sub InsererDemande()
On Error GoTo GestionErreur
'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
If WordDoc.ProtectionType = 2 Then
WordDoc.Unprotect
End If
'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, 13) = WordDoc.Fields(6).Result.Text
WordDoc.Close False 'ferme le document Word sans sauvegarde
WordApp.Quit 'ferme l'application Word
Exit Sub
GestionErreur:
MsgBox "Attention! L'insertion de la demande n'a pas fonctionné", vbOKOnly, "Erreur : " & Err.Description
Application.ScreenUpdating = True 'pour remettre l'affichage à jour
Application.Cursor = xlDefault
End Sub |
Partager