Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

MuscatMimi

XLDnaute Accro
Bonjour
oui j'ai essayé mais pas avec la bonne procédure,et ça fonctionne pas
je vais essayer votre proposition,
En fait il faut que je puisse envoyer le mail,même s'il n'y a pas de fichier joint dans "Cell I13"
merci
 

xUpsilon

XLDnaute Accro
Bonjour,

C'est justement à ça que sert le test If Len(Dir(curfile)) > 0
S'il n'y a pas de fichier joint, le code ne va pas essayer d'ajouter de pièce jointe au mail -> par d'erreur.

Bonne continuation
 

xUpsilon

XLDnaute Accro
non,rien changé,une fois ça marche et aprés ça beug

Très bizarre, pourrais tu exécuter le code en pas par pas (raccourci F8) en ouvrant la fenetre de variables locales ? Comme ça tu regardes comment curfile évolue au fil de l'exécution du code.

au lieu d'indiquer
curfile = Sheets("MailEnvoyés").Range("E11") '<<<<<<ce sera E11 et E12 cell piéces jointe>>>>>>
nommer la cellule,
Tu peux réexpliquer ? Ce n'est pas clair.

Bonne continuation
 

xUpsilon

XLDnaute Accro
C'est quoi celljule ?
Et Piece c'est quoi ?
Parce que curfile = Piece ça veut dire que la variable curfile est égale à la variable Piece.

Plutot que d'essayer n'importe quoi en espérant que ça fonctionne, reprenez le code que l'on vous avait donné et faites le tourner en pas par pas (raccourci F8) et regardez l'évolution des variables locales (en particulier l'évolution de curfile).

Si vous n'en faites qu'à votre tete débrouillez vous, si vous voulez de l'aide, il va falloir être coopératifs.


PS : Pour exécuter une macro avec F8, il faut placer le curseur dans le code que l'on souhaite exécuter, puis appuyer sur F8.
 

xUpsilon

XLDnaute Accro
Bon,

Dans le menu "Débogage", cliquer sur "Pas à pas détaillé F8" (dans l'éditeur VBA).

Si vous avez nommé une cellule Piece, pour l'atteindre il faudrait écrire curfile = Range("Piece"). Enfin bref passons, exécutez le code que l'on vous a donné en pas à pas, en ayant ouvert la fenetre de variables locales.
 

Discussions similaires

Réponses
2
Affichages
657
Réponses
7
Affichages
592
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…