XL 2010 Soucis Envoi Mail avec Pièces Jointe

MuscatMimi

XLDnaute Accro
Bonjour a tout le Forum

J'ai une feuille "MailEnvoyés",et une cellule "I13"nommée Nomfichier,dans laquelle le nom du fichier est inséré automatiquement

J'ai ce code,qui fonctionne bien si il y a un fichier d'inséré dans "I13",mais si je désire envoyer le mail sans pièce jointe,ça ma met une erreur sur la ligne "Attachments.add"

Il faut que je vérifie si la cellule est vide,,si OUI,envoi le mail,mais je n'y arrive pas,si l'un d'entre-vous a la solution,ce serait super
merci a tous a l'avance
Christian
VB:
Sub Envoi_Mail2()
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim curfile As String
curfile = Sheets("MailEnvoyés").Range("I13")
With Sheets("MailEnvoyés")
 CCMail = .Range("F9") 'adresse mail du destinataire
 ' BCCMail = .Range("B3") 'copie a!!!autres destinataires
 SUJBCC = .Range("F4") 'sujet du mail
  End With
  Set olApp = CreateObject("Outlook.Application")
  Set olMail = olApp.CreateItem(olMailItem)
  Sheets("MailEnvoyés").Activate
 ActiveSheet.Range("A1:H54").Select 'Selection du tableau
    ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
  .Item.To = CCMail 'adresse mail destinataire
  .Item.Subject = SUJBCC 'sujet du mail""
.Item.Attachments.Add curfile
End With
MsgBox "Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
  Set olMail = Nothing
  Set olApp = Nothing
 Sheets("MailEnvoyés").Range("I13").Value = ""
Sheets("mailEnvoyés").CommandButton2.Visible = True
Sheets("MailEnvoyés").CommandButton4.Visible = False
End Sub
 

xUpsilon

XLDnaute Accro
Bon pour la dernière fois avant que je m'énerve et que j'arrete de vous aider :
exécutez le code en pas à pas et suivez ce qu'il se passe avec la fenetre "variables locales". Lorsque l'erreur apparait, prenez un screenshot et envoyez le nous pour qu'on puisse aider, avec un screenshot du message d'erreur

J'espère que c'est bien clair cette fois ci. Demander de l'aide sans nous transmettre les informations, c'est comme aller chez le boucher et lui dire "je veux acheter à manger svp". Il y a 0.0000001% de chances pour qu'il comprenne ce que vous voulez.
 

xUpsilon

XLDnaute Accro
Lorsque le code s'exécute, une erreur se produit, sinon vous ne seriez pas là.
De la meme manière, si vous exécutez ce code en pas à pas, cette erreur doit se produire. Ce qui m'intéresse, c'est que lorsque l'erreur se produit, vous prenez un screenshot du message d'erreur et un screenshot de la variable curfile dans la fenetre de variables locales.
 

Best1

XLDnaute Nouveau
Bonjour,
Je repasse en retard. Je me permet quand même un remarque.
"L'astuce" On Error Resume Next permet juste de ne pas s'arrêter sur l'erreur. C'est donc une manière peu élégante de contourner le problème. Surtout que cela masquera les erreurs ultérieures et risque de vous faire croire que votre code fonctionne à merveille alors qu'il y a des bugs (des fois pas évidents à détecter) qui persistent.
Je vous conseille personnellement de continuer l'analyse. L’origine de l'erreur ne doit pas être très difficile à trouver (et pourquoi pas un fichier anonymisé joint). A défaut, remettez après
.Item.Attachments.Add joint 'cell E12 piéce jointe
On Error GoTo 0
ce qui annulera On Error Resume Next



Edit : Testez
If Len(Dir(curfile)) > 0 Then .Item.Attachments.Add curfile
If Len(Dir(joint)) > 0 Then .Item.Attachments.Add joint
 

Best1

XLDnaute Nouveau
Bonsoir Best1
j’’e te joint le fichier,y a rien de secret,c'est un fichier pour la maintenance

Bonjour,
Votre fichier contient quand même des données personnelles.
Je vous invite à le retirer du site rapidement.

Je n'ai pas gardé ton fichier longtemps surtout que j'obtiens des erreurs de compilation à mon niveau.
Comme solution alternative, testez si vous obtenez un message d'erreur avec :

If curfile <> "" Then .Item.Attachments.Add curfile
If joint <> "" Then .Item.Attachments.Add joint
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan