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

Choisir la PJ avant envoi mail

  • Initiateur de la discussion Initiateur de la discussion cottages
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

cottages

Guest
Bonjour,

Je travaille sur une macro en VBA qui envoie des mails en (CDO).
Je voudrais qu'avant d'envoyer, on pose la question "Voulez-vous joindre un document ?"
Si la réponse est oui on nous permet de naviguer dans les répertoires pour y trouver la pièce jointe à attacher à l'envoi. Merci beaucoup pour votre aide.
 
Re : Choisir la PJ avant envoi mail

Bonsoir,
Code:
If MsgBox("Voulez-vous joindre un document ?", vbYesNo) = vbYes Then
    Set pJointes = Application.FileDialog(msoFileDialogOpen)
    With pJointes
        .AllowMultiSelect = True
        .Show
    End With
End If

Set oMail = CreateObject("CDO.Message")

With oMail
    '....
    For i = 1 To pJointes.SelectedItems.Count
    .AddAttachment pJointes.SelectedItems.Item(i)
    Next
    '....
    .Send
End With
kjin
 
Re : Choisir la PJ avant envoi mail

Rebonjour, Kjin,

Pouvez-vous m'expliquer à quoi sert la procédure for ... next de la procédure with :l
'....
For i = 1 To pJointes.SelectedItems.Count
.AddAttachment pJointes.SelectedItems.Item(i)
Next
'....
.Send
End With

Je pense qu'il y a une relation avec le nombre de fichiers à attachés, mias je n'en suis pas sûr... Merci.
 
Re : Choisir la PJ avant envoi mail

Bonsoir à tous

Je me permets de répondre à la question
usf= Ce lien n'existe plus


EDITION: Comme on dit un homme avertit en vaut deux
et deux personnes qui en avertissent une autre en même temps ça fait trois 😉




 
Dernière édition:
Re : Choisir la PJ avant envoi mail

Re,

Ton USERFORM que tu as dans virtual basic, si tu en pas comment tu fais pour envoyer tes mails, tu peux joindre un fichier exemple stp 🙂

Bonsoir, Ronibo,

J'ai fait une simple macro que j'appelle d'un bouton, à partir d'un document excel. Cette macro envoi donc un mail accompagné de ce même document en PJ et, en plus, je peux y joindre un deuxième document, figurant dans un répertoire, (que j'ouvre sur invitation de la macro), document, qui, lui, est choisis en fonction du destinataire du mail. En résumé un mail est envoyé avec un sujet, un message et deux pièces jointes.
 
Re : Choisir la PJ avant envoi mail

bonsoir,
Pouvez-vous m'expliquer à quoi sert la procédure for ... next de la procédure with :l
Lorsque la boite "Ouvrir" est affichée, en maintenant la touche contrôle enfoncée il est possible de sélectionner plusieurs fichiers à envoyer (AllowMultiSelect = True), d'où la boucle
Je note cependant que j'ai omis de gérer l'erreur au cas où l'utilisateur ne souhaite pas joindre de fichier et répond non, comme ceci par exemple
Code:
Dim pJointes As Object, i as byte
If MsgBox("Voulez-vous joindre un document ?", vbYesNo) = vbYes Then
    Set pJointes = Application.FileDialog(msoFileDialogOpen)
    With pJointes
        .AllowMultiSelect = True
        .Show
    End With
End If

Set oMail = CreateObject("CDO.Message")

With oMail
    '....
    If Not pJointes Is Nothing Then
        For i = 1 To pJointes.SelectedItems.Count
            .AddAttachment pJointes.SelectedItems.Item(i)
        Next
    End If
    '....
    .Send
End With
ou bien en utilisant une variable booléenne
kjin
 
Re : Choisir la PJ avant envoi mail

Merci kjin,

Pour la réponse "non" j'avis corrigé en faisant un "else" et un "goto" vers une étiquette placée avant le "send".

Par contre je ne m'explique pas le temps relativement long (10 sec au moins), qui s'écoule entre la sélection d'une PJ, et la confirmation de l'envoi. Est-ce dû au temps de chargement de la pièce à joindre? Je vais essayer d'ajouter une info: "patientez".
Merci encore
 
Re : Choisir la PJ avant envoi mail

Bonjour, Voici le code. et merci pour l'aide.


Sub MailACPj()

Sheets("Lettre").Select
If ActiveSheet.TextBox6.Value Like "?*@?*.?*" Then
Sheets(Array("Lettre")).Select
Sheets("Lettre).Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & "Assemblée" & ".PDF" 'Exporte la feuille dans le même répertoire, mais en PDF

Dim messageHTML
On Error GoTo errorHandler
Set objMessage = CreateObject("CDO.Message")
objMessage.BodyPart.Charset = "utf-8" 'traiter les accentuations des lettres françaises
objMessage.Subject = "XXXXX"
objMessage.From = "XXXXX".
objMessage.To = ActiveSheet.TextBox6.Value 'Email du destinataire
objMessage.TextBody = "xxxxxxxxxxxxxxxxxxxx"
piece_jointe1 = ActiveWorkbook.Path & "\" & "Assemblée" & ".PDF"


'Configuration du processus mailing
messageHTML = "Ceci est un message en HTML" '
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp xxxxx"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.AddAttachment (piece_jointe1) 'On ajoute la piéce jointe, il est possible d'envoyer plusieurs pièces
'objMessage.AddAttachment (piece_bis) 'dans ce cas on ajoute un objMessage.AddAttachement () par pièce


If MsgBox("Voulez-vous joindre un document ?", vbYesNo) = vbYes Then
Set pJointes = Application.FileDialog(msoFileDialogOpen)
With pJointes
.AllowMultiSelect = True
.Show
End With

Else: GoTo envoyer
End If

With objMessage
'....
For i = 1 To pJointes.SelectedItems.Count
.AddAttachment pJointes.SelectedItems.Item(i)
Next
'....
envoyer:

objMessage.Send

End With

MsgBox "Le mail a été bien envoyé !" ', 64, "Information"
'après l'envoi la feuille PDF est supprimée
Kill ActiveWorkbook.Path & "\" & "Assemblée" & ".PDF"
'si erreur on sort de la procédure


Else 'Cas où l'adresse mail est incorrecte
MsgBox ("adresse mail incorrecte! ..")
End If
Sheets("Lettre").Visible = False


Exit Sub
errorHandler:
'description de l'erreur survenue
MsgBox Err.Description

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

O
Réponses
1
Affichages
695
Réponses
2
Affichages
1 K
S
Réponses
6
Affichages
2 K
soNZOOO
S
E
Réponses
1
Affichages
1 K
H
Réponses
1
Affichages
946
R
Réponses
1
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…