Comment fermer OUTLOOK de puis Word en VBA

Résolu/Fermé
Throne55 Messages postés 4 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2008 - 4 juin 2008 à 15:01
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 4 juin 2008 à 17:00
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
A voir également:

8 réponses

yoogui Messages postés 2019 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 13 avril 2011 316
4 juin 2008 à 15:04
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 ;)
0
Throne55 Messages postés 4 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 16:06
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.
0
yoogui Messages postés 2019 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 13 avril 2011 316
4 juin 2008 à 16:11
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.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 juin 2008 à 16:26
bonjour,

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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Throne55 Messages postés 4 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 16:46
Merci pour ta réponse Polux31, je la test de suite.
0
yoogui Messages postés 2019 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 13 avril 2011 316
4 juin 2008 à 16:52
Et moi ????????????????????? :'((


^_^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 juin 2008 à 16:54
C'est un non violent sans doute !!!

;O))
0
Throne55 Messages postés 4 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 16:59
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



0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 juin 2008 à 17:00
de rien,

bon courage

;o)

polux
0