Comment fermer OUTLOOK de puis Word en VBA
Résolu
Throne55
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pour ma première question posé sur les forums(après avoir cherché de longues heures la solution sur Internet) Je cherche désespérement à savoir comment on peut fermer Outlook en VBA depuis Word après l'envoi automatique d'un mail avec le document en pièce jointe.
J'ai tenté la chose avec la commande suivante en vain:
Set MonOutlook = Nothing
Ca ne fonctionne pas, le processus Outlook.exe reste chargé.
Je précise que je travaille avec:
Outlook 2002
Word 2002
Microsoft Office Outlook Library 10.0
En vous remerciant par avance de vos réponses
Pour ma première question posé sur les forums(après avoir cherché de longues heures la solution sur Internet) Je cherche désespérement à savoir comment on peut fermer Outlook en VBA depuis Word après l'envoi automatique d'un mail avec le document en pièce jointe.
J'ai tenté la chose avec la commande suivante en vain:
Set MonOutlook = Nothing
Ca ne fonctionne pas, le processus Outlook.exe reste chargé.
Je précise que je travaille avec:
Outlook 2002
Word 2002
Microsoft Office Outlook Library 10.0
En vous remerciant par avance de vos réponses
A voir également:
- Comment fermer OUTLOOK de puis Word en VBA
- Word 2013 - Télécharger - Traitement de texte
- Comment supprimer une page sur word - Guide
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
8 réponses
Je suppose que tu veux pas le processus word qui tourne juste pour Outlook..
Outils>Options>Format du courrier et décoche les 2 cases "Utiliser Microsoft Office Word 200x pour[...]"
et Outlook utilisera l'éditeur de courrier par défaut de Outlook, donc t'aura plus le processus word qui tourne ;)
Outils>Options>Format du courrier et décoche les 2 cases "Utiliser Microsoft Office Word 200x pour[...]"
et Outlook utilisera l'éditeur de courrier par défaut de Outlook, donc t'aura plus le processus word qui tourne ;)
Non en fait le processus word ne me dérange pas bien au contraire. En fait je lance une macro depuis Word (j'ai donc besoin du processus de word). Cette macro s'occupe de trier les pages d'un publipostage pour soit imprimer les pages, soit les envoyer par mail. Sur cet ensemble tout se passe très bien, les mails sont bien envoyés et les autres pages imprimées. Mais là où ça coince c'est à la fin de la macro lorsque tout est terminé, je cherche à fermer le processus outlook.exe, et là pas moyen, le processus en question n'est pas arrêté. Cela est gênant dans le sens où je ne sais pas non plus récupérer un processus déjà actif afin de le réutiliser pour l'envoi de mail, au lancement suivant de la macro.
Je précise que cette macro sera à terme utilisé par des secrétaires qui envoi beaucoup de courrier chaque jour. Donc si le processus ne peut ni être arrêté, ni être récupéré, les secrétaires saturerons constamment leurs machines, et vous imaginez bien la suite.
Je te remercie tout de même de ta réponse que j'ai pris la peine de tester au cas où un lien quelconque entre word et outlook posait problème, mais sans résultat.
Je précise que cette macro sera à terme utilisé par des secrétaires qui envoi beaucoup de courrier chaque jour. Donc si le processus ne peut ni être arrêté, ni être récupéré, les secrétaires saturerons constamment leurs machines, et vous imaginez bien la suite.
Je te remercie tout de même de ta réponse que j'ai pris la peine de tester au cas où un lien quelconque entre word et outlook posait problème, mais sans résultat.
Err...veux pas se fermer le méchant Outlook ?
C'est bien le fichier > Quitter qui marche pas ?
Apparemment tu sais te servir d'un PC, mais peut-être faut oser employer la manière forte..
CTRL+ALT+SUP > Processus > Ici tu ranges par "nom d'utilisateur" pour avoir <ton-nom> en haut
Tu cherches le processus OUTLOOK.EXE ..et la 'Terminer le processus', bien sur c'est violent mais utile pour détruire les plus résistant.
C'est bien le fichier > Quitter qui marche pas ?
Apparemment tu sais te servir d'un PC, mais peut-être faut oser employer la manière forte..
CTRL+ALT+SUP > Processus > Ici tu ranges par "nom d'utilisateur" pour avoir <ton-nom> en haut
Tu cherches le processus OUTLOOK.EXE ..et la 'Terminer le processus', bien sur c'est violent mais utile pour détruire les plus résistant.
bonjour,
As-tu essayer : monOutlook.Close ?
Sinon, voilà comment tuer un processus par le code:
En passant "outlook.exe" en paramètre à cette procédure, tu tues le processus de la même manière
que le gestionnaire de tâches.
;o)
As-tu essayer : monOutlook.Close ?
Sinon, voilà comment tuer un processus par le code:
Public Sub KillProcess(ByVal ProcessName As String) Dim ovc As Object Dim sQuery As String Dim oproc Set ovc = GetObject("winmgmts:root\cimv2") sQuery = "select * from win32_process where name='" & ProcessName & "'" For Each oproc In ovc.execquery(sQuery) oproc.Terminate Next Set ovc = Nothing End Sub
En passant "outlook.exe" en paramètre à cette procédure, tu tues le processus de la même manière
que le gestionnaire de tâches.
;o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Formidable!
La solution de Polux31 pour tuer le processus fonctionne à merveille! Elle me sauve la vie, même si je la trouve un petit peu moins élégante qu'un fermeture propre.
Un grang merci donc à Polux31 pour sa solution ainsi qu'a yoogui par ses réponses.
La bonne solution est donc:
Public Sub KillProcess(ByVal ProcessName As String)
Dim ovc As Object
Dim sQuery As String
Dim oproc
Set ovc = GetObject("winmgmts:root\cimv2")
sQuery = "select * from win32_process where name='" & ProcessName & "'"
For Each oproc In ovc.execquery(sQuery)
oproc.Terminate
Next
Set ovc = Nothing
End Sub
La solution de Polux31 pour tuer le processus fonctionne à merveille! Elle me sauve la vie, même si je la trouve un petit peu moins élégante qu'un fermeture propre.
Un grang merci donc à Polux31 pour sa solution ainsi qu'a yoogui par ses réponses.
La bonne solution est donc:
Public Sub KillProcess(ByVal ProcessName As String)
Dim ovc As Object
Dim sQuery As String
Dim oproc
Set ovc = GetObject("winmgmts:root\cimv2")
sQuery = "select * from win32_process where name='" & ProcessName & "'"
For Each oproc In ovc.execquery(sQuery)
oproc.Terminate
Next
Set ovc = Nothing
End Sub