VBA - Structure d'interface et fonction pour envoyer un mail Outlook [Supprimé]

Statut
La discussion n'est pas ouverte à d'autres réponses

Dudu2

XLDnaute Barbatruc
Dudu2 a soumis une nouvelle ressource:

VBA - Structure d'interface et fonction pour envoyer un mail Outlook - Envoyer facilement un mail avec Outlook

Le fichier à télécharger contient:
  1. Le Module_EnvoiMailOutlook à copier / intégrer dans le Projet VBA
    Il contient:
    - Une structure d'interface (Type OUTLOOK_DATA) dont les éléments sont utilisés pour l'envoi du mail,
    - La Function MailOutlook() à appeler pour envoyer le mail.

  2. Le Module_Test qui est un exemple de mise en œuvre de...

En savoir plus sur cette ressource...
 

alex973

XLDnaute Nouveau
bonjour dudu2
super macro, mais je n'arrive pas à paramétrer l'envoi d'un pièce jointe
peux tu m'expliquer en réponse comment ca fonctionne
merci
alexis
 

Dudu2

XLDnaute Barbatruc
Bonjour Alexis,

Tu as un exemple avec 2 pièces jointes en commentaires du code dans le paragraphe "Mise en œuvre":
VB:
'ReDim .TabAttachments(1 To 2)
'.TabAttachments(1) = "H:\Téléchargements\Attachment1.pdf"
'.TabAttachments(2) = "H:\Téléchargements\Attachment2.pdf"

Si tu n'as qu'une seule pièce jointe tu fais:
VB:
With OutLookInterface
    .../...
    ReDim .TabAttachments(1 To 1)
    .TabAttachments(1) = "H:\Téléchargements\Attachment1.pdf"
    .../...
End With
En indiquant le chemin complet de la pièce à joindre en indice 1 du tableau des pièces jointes (.TabAttachments).

Edit: dans le paragraphe "La structure d'interface" j'ai modifié le commentaire pour remplacer le terme "attachements" (qui est un anglicisme pas très bien venu) par "pièces jointes" qui est plus approprié.
(Pièces jointes se dit Attachments en anglais)
 
Dernière édition:

alex973

XLDnaute Nouveau
Bonjour Alexis,

Tu as un exemple avec 2 pièces jointes en commentaires du code dans le paragraphe "Mise en œuvre":
VB:
'ReDim .TabAttachments(1 To 2)
'.TabAttachments(1) = "H:\Téléchargements\Attachment1.pdf"
'.TabAttachments(2) = "H:\Téléchargements\Attachment2.pdf"

Si tu n'as qu'une seule pièce jointe tu fais:
VB:
With OutLookInterface
    .../...
    ReDim .TabAttachments(1 To 1)
    .TabAttachments(1) = "H:\Téléchargements\Attachment1.pdf"
    .../...
End With
En indiquant le chemin complet de la pièce à joindre en indice 1 du tableau des pièces jointes (.TabAttachments).

Edit: dans le paragraphe "La structure d'interface" j'ai modifié le commentaire pour remplacer le terme "attachements" (qui est un anglicisme pas très bien venu) par "pièces jointes" qui est plus approprié.
(Pièces jointes se dit Attachments en anglais)
j'ai le bug suivant :
1660495296921.png

apres dégogage :
1660495328544.png

et voilà le bout de code que j'ai modifié suivant tes instructions :
1660495372583.png


peux tu m'aider à résoudre le problème
merci d'avance
alexis
 

Dudu2

XLDnaute Barbatruc
Tu as raison. Désolé, j'ai bugué (cause rename trop violent). Mea maxima culpa.
Je prépare une version corrigée et la re-publie.
 

Dudu2

XLDnaute Barbatruc
Voici le fichier corrigé et amélioré pour intercepter les erreurs lors de l'ajout d'Attachments.
C'est bon pour moi. Si ça l'est aussi pour toi, je publierai cette version.
 

Pièces jointes

  • Envoi de Mail avec Outlook.xlsm
    33.5 KB · Affichages: 5

alex973

XLDnaute Nouveau
Merci je regarde ça demain matin
ca marche nickel.
M'autorises tu à modifier ton code pour le rendre plus générique. A savoir, le nombre de pièces jointes à envoyer. j'aimerais aussi comment tu modifies la boite de dialogue qui indique les comptes outlook présents.
merci
a te lire
alexis
 

Dudu2

XLDnaute Barbatruc
Bonjour,
M'autorises tu à modifier ton code pour le rendre plus générique
Quel code veux-tu modifier ?
Je te conseille de laisser tel quel le Module_MailOutlook et ne pas y inclure de code.
Place ton code dans un Module séparé.

Tu peux coder ce que tu veux dans ton propre module qui appelle la fonction d'envoi.
Le nombre de pièces jointes est libre et ne dépend que de ce que tu codes dans ton propre module.

La boîte de dialogue de choix du compte dans la fonction d'envoi est basique.
Tu peux, toujours dans ton propre module, appeler la fonction ListeComptesOutlook() qui te renvoie un tableau des Comptes Outlook présents et gérer cette liste à ta guise pour en choisir un à valoriser dans l'Interface.
VB:
SendUsingAccount As Variant         'Nom du compte Outlook à utiliser (ex.:moncompte@domaine.com)
                                    'ou bien
                                    'Numéro de séquence (1-n) du compte Outlook à utiliser
                                    'Si SendUsingAccount = 0, la liste des comptes est proposée pour un choix

Il faut juste rendre Public la fonction ListeComptesOutlook() au préalable, ce que je ferai dans le code final.
 
Statut
La discussion n'est pas ouverte à d'autres réponses

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16