Salut,
J'ai le code suivant:
qui me permet de créer des mails sous outlook à partir de mon formulaire (je passe par Word pour récupérer le contenu d'une Richtextbox en RTF (alignements, images, etc...)).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Dim WordApp As Object Dim OutlMail As Object WordApp = CreateObject("Word.Application") WordApp.Visible = True WordApp.Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=0) Me.RichTextBoxTrame.SelectAll() Me.RichTextBoxTrame.Copy() WordApp.ActiveDocument.Range.PasteAndFormat(0) ' 0 = wdPasteDefault For Each Destinataire As Class_Fournisseur_IC In FournisseursConsultes OutlMail = WordApp.ActiveDocument.MailEnvelope.Item With OutlMail .To = Destinataire.Adresse .Cc = Me.TextBoxInge.Text & ";" & Me.TextBoxAdresseAchat.Text & ";" & ListeCT(Me.ComboBoxCTAffaire.SelectedIndex).Adresse .Subject = "Consultation dans le cadre du forfait OPTIM - DM " & Me.TextBoxNumDM.Text & " - société " & Destinataire.Societe For Each PieceJointe As String In Me.ListBoxPiecesJointes.Items .Attachments.Add(PieceJointe) Next End With OutlMail.Save() OutlMail = Nothing Next WordApp.ActiveDocument.Close(0) WordApp.Quit()
Tout se passe à peu prêt bien pendant l'exécution du code (j'ai quelques fois le mail qui au lieu de se retrouver dans les brouillons est dans ma boite de réception, mais rien de bien grave).
Le problème c'est que quand j'arrête mon code (quand je suis en débug), je ne réussi pas à reprendre la main tant que je n'ai pas cliqué sur le petit carré 'Arrêter le débogage'. Le problème semble provenir de mon lien Word ou outlook qui ne doit pas être complètement "mort" car si j'arrête le Winword (et aussi le Outlook) qui traine par le gestionnaire de tâches, VB me rend la main immédiatement sans passer par 'Arrêter le débogage'.
J'ai bien essayé de rajouter un WordApp = Nothing à la fin, ça ne change rien.
Si je passe le For Each Destinataire ... Next en commentaire, le winword reste dans le gestionnaire de tache (mais je n'ai plus de Outlook) et le code se termine normalement.
Quelqu'un a-t-il une idée?
Pour info, je passe par du late binding car mon exe peut être exécuté sur des machines n'ayant pas forcement la même version du pack office.
Merci.
Partager