• Initiateur de la discussion Initiateur de la discussion gourdin
  • 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 !

gourdin

XLDnaute Impliqué
Bonjour,

Après nombreux tatonnements et essai avec des macros du forum et compte tenu de mon niveau j'ai opté pour un code le plus simple possible pour envoyer mail par outlook.
Le message retranscrit une succession de lignes d'un tableau.

Le code est à peu près celui ci :
Code:
Sub envoi_mail()
Dim Adresse As Range
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Subj = " Bonjour "
Msg = Range("G14") & "%0a" & Range("G15") & "%0a" & Range("G16") & "%0a" 
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub

Celà fonctionne bien si il n'y pas trop de caractères dans les cellule G14, G15, G16 etc.. car sinon un message d'erreur apparait du type "Erreur d'execution 5 - Argument ou appel de procédure incorrect"

Il y a t-il un moyen pour eviter celà tout en gardant la simplicité à la macro ?

Voir fichier joint

Merci
 

Pièces jointes

Re : Envoi mail

Bonjour,

Tu pourrais tester le code suivant : (perso, je ne l'ai pas testé ...)

VB:
Option Explicit

Sub envoi_mail()
Dim Plage As Range
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Subj = " Liste invités "

Set Plage = Worksheets("Feuil1").Range("G14:G33")
Msg = Plage
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub

A +
🙂
 
Re : Envoi mail

Re,

Comme Kjin te l'a déjà suggéré ... il existe tellement de configurations différentes ... qu'il te faut trouver celle qui est adaptée à ta situation ...

Par example, tout change en fonction du choix du programme pour envoyer les emails ...

Et le site sur lequel elles sont toutes répertoriées est celui de Ron de Bruin ...

A priori, ce qui correspond le mieux à la description de ton problème est :

Mail Range or Selection with SendMail

A +
🙂
 
Re : Envoi mail

Merci,

J'ai fait des essais avec les exemples de Ron de Bruin mais celà ne me convient pas vraiment. Peut être aussi parce que je n'arrive pas à me débrouiller avec ses codes.

De plus, je ne souhaite pas de fichier joint mais seulement du texte dans le corps du message qui reprennent le valeurs de quelques cellules excel.

Je ne pensais pas que celà soit si compliqué car mon début de macro très simple (pour outlook) fonctionnait bien mais bloquait au delà d'un certain nombre de caractères dans les cellules.
Je pensais qu'il y avait une petite adaptation à faire sur mon code.
 
Re : Envoi mail

Il me semble pourtant que la version excel est affiché sur le forum (2003 en ce qui me concerne)

Par contre Outlook c'est aussi 2003.

Si mon code ne peut pas être adapté, je vais me débrouiller.

Merci pour tout et bonne journée
 
Re : Envoi mail

Bonjour,

Finalement, je suis parvenu au résultat souhaité avec le code de Ron de Bruin adapté à mes besoins.

Voici donc mon code :

Sub Envoi_Mail_Outlook()
Dim OutApp As Object
Dim OutMail As Object
Dim Message As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

Message = Range("G14") & vbNewLine & Range("G15") & vbNewLine & Range("G16") & vbNewLine & _
Range("G17") & vbNewLine & Range("G18") & vbNewLine & Range("G19") & vbNewLine & _
Range("G20") & vbNewLine & Range("G21") & vbNewLine & Range("G22") & vbNewLine & _
Range("G23") & vbNewLine & Range("G24") & vbNewLine & Range("G25") & vbNewLine & _
Range("G26") & vbNewLine & Range("G27") & vbNewLine & Range("G28") & vbNewLine & _
Range("G29") & vbNewLine & Range("G30") & vbNewLine & Range("G31") & vbNewLine & _
Range("G29") & vbNewLine & Range("G30") & vbNewLine & Range("G31") & vbNewLine & _
Range("G32") & vbNewLine & Range("G33") & vbNewLine

On Error Resume Next
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = Range("G2")
.Body = Range("G2") & vbNewLine & _
Range("G3") & vbNewLine & _
Range("G4") & vbNewLine & vbNewLine & _
"LISTE :" & vbNewLine & vbNewLine & _
Message

.Display

End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Bonne journée
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Macro VBA
Réponses
2
Affichages
554
Réponses
0
Affichages
1 K
Retour