Problème VBA Attachment Email

Problème VBA Attachment Email - VB/VBA/VBS - Programmation

Marsh Posté le 04-10-2012 à 16:16:04    

Bonjour,
J'ai un fichier excel avec une adresse email, un sujet, un corps de texte et surtout un lien vers une pièce jointe.
Mon problème vient du faite que parfois la pièce jointe n'existe pas et j'ai donc une erreur sur mon code et donc cela stop tout le processus. Le problème vient de la ligne .Attachments.Add (pj) qui lorsqu'il n'y a pas de pièce jointe fait arrêter toute la macro, ce que je voudrais serait un fonction qui fasse continuer la macro meme si il n'y pas de pièce jointe(du genre if pj est fausse continuer quand meme la macro).
Voila ma macro:
[code-vb]
Sub SendMail_Outlook()
 
 
 
Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String
Dim objOutlookAttach As Attachment
 
 
 
    i = 1
    Do While i < 4
 
 
     
        Set Ol = New Outlook.Application
        Set Olmail = Ol.CreateItem(olMailItem)
        With Olmail
 
        pj = Cells(i, 4)
 
        .To = Cells(i, 2).Value
        .subject = Cells(i, 1).Value
        .Body = Cells(i, 3).Value
        .Attachments.Add (pj)
        .Display
        i = i + 1
 
        '.Send
 
        End With
    Loop
End Sub
[/code]
Merci beaucoup

Reply

Marsh Posté le 04-10-2012 à 16:16:04   

Reply

Marsh Posté le 04-10-2012 à 17:34:28    

Salut, sans savoir d'ou vient PJ, tenter qqch comme

       .Body = Cells(i, 3).Value
        If Len(pj) > 0 Then
            .Attachments.Add (pj)
        End If
        .Display


Message édité par kiki29 le 04-10-2012 à 17:34:56

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 04-10-2012 à 17:37:19    

Non, ca ne marche pas, la PJ vient d'un chemin local :  
C:\Users\dleger\Desktop\Photo\7.PNG
C:\Users\dleger\Desktop\Photo\3.PNG
 
...

Reply

Marsh Posté le 04-10-2012 à 17:58:19    

Peut-être en créant un objet fichier :
 

Code :
  1. Dim oFSO As Scripting.FileSystemObject
  2. Dim oFl As Scripting.File
  3. pj = Cells(i, 4)
  4. With Olmail
  5.         .To = Cells(i, 2).Value
  6.         .subject = Cells(i, 1).Value
  7.         .Body = Cells(i, 3).Value
  8. Set oFSO = New Scripting.FileSystemObject
  9. If oFSO.FileExists(pj) Then
  10.      .Attachments.Add (pj)
  11. End If


 
Attention, j'ai pas testé.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 04-10-2012 à 18:02:37    

Non ca ne marche pas, Merci quand même.

Reply

Marsh Posté le 04-10-2012 à 18:25:32    

C'est quoi qui ne marche pas ?
Où est l'erreur ?


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 04-10-2012 à 18:27:00    

l'erreur vient de  .Attachments.Add (pj)  car dans certains cas, la pièce jointe n'existe pas

Reply

Marsh Posté le 04-10-2012 à 18:32:51    

Dans le code que je t'ai mis, ça passe dans le if même si le fichier n'existe pas ?

Code :
  1. If oFSO.FileExists(pj) Then
  2.      .Attachments.Add (pj)
  3. End If


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 04-10-2012 à 18:36:14    

le seul if que j'ai c'est celui que tu viens d'écrire.

Reply

Marsh Posté le 05-10-2012 à 07:12:10    

Il faut que tu ajoutes une référence à ton projet vba et le code que je t'ai donné doit fonctionner :
Outils / Références / tu coches Microsoft Scripting Runtime.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed