[VBA-E] Eliminer un processus
Bonjour,
Mon code permet d'exporter des données d'excel (2003) vers word.
Un doc. word est alors crée.
Si je réalise une seconde fois l'opération, lorsque le doc. word crée est déjà ouvert, le processus WINWORD.exe apparait dans le gestionnaire des tâches. (si le doc word n'est pas ouvert, je ne rencontre pas de problèmes).
Après plusieures tentatives, à l'aide des informations contenues dans le forum, le problème persiste.
Voici le code en question:
Code:
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| Private Sub CopieDansWord_Click()
'###############
'# Liaison avec word #
'###############
Dim appword As New Word.Application
Dim docword As New Word.document
On Error GoTo traiter_erreur
'Saisie obligatoire
'......
'......
'#################
'# Copier/Coller #
'#################
'Ajoute un nouveau document
With appword
.Visible = False
Set docword = .Documents.Add
Application.ScreenUpdating = False
docword.PageSetup.Orientation = wdOrientLandscape 'Mise en page paysage
End With
'Insertion d'un pied de page
'......
'......
'Ajoute une ligne de titre et la met en forme
'.......
'.......
'Copie le tableau excel "Jours ouvrés" dans le presse-papiers
Range("B10:H30").copy
'Colle le tableau dans Word avec liaison
.EndKey Unit:=wdLine
.TypeParagraph
.TypeParagraph
.PasteSpecial Link:=True, DataType:=wdpastOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
End With
Application.CutCopyMode = False
'####################
'# Enregistrer le Doc. Word #
'####################
With docword
'Enregistre le document Word dans le même dossier que le classeur excel
laDate = Format(Sheets("Jours ouvrés").Range("C8"))
.SaveAs ThisWorkbook.Path & "\Jours ouvrés" & " " & laDate & ".doc", _
Allowsubstitutions:=True
End With
With appword
appword.Application.Quit
MsgBox "Jours ouvrées " & laDate & " est disponible dans le dossier TB B...."
End With
'Réinitialise l'objet
Set appword = Nothing
traiter_erreur:
If Err.Number = 5356 Then
MsgBox ("Impression impossible. Le document est déjà ouvert"), _
vbExclamation, "Opération annulée"
Application.DisplayAlerts = False
End If
Application.DisplayAlerts = True
End Sub |
Merci d'avance