Envoi mail avec piece jointe

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 !

KImi9664

XLDnaute Nouveau
Bonjour, je possède un fichier excel où j'ai créer une macro qui enregistre le fichier sous format PDF.
Maintenant je voudrai une autre macro pour envoyé ce fichier PDF en piece jointe d'un mail.

J'ai deja trouvé l'ouverture de la boite mail et d'un nouveau message avec destinataire préremplie mais je ne trouve pas comment ajouter la pieces jointes.

Voila ou j'en suis :

Private Sub Envoimail_Click()
Dim strdest As String

'adresse = "xxxx.xxxxx@xxxx"
Sujet = "Prestation prix de revient"
txt = "Ci-joint le document PDF correspondant à la prestation Prix de Revient"

' On demande l'adresse e-mail du destinataire
strdest = InputBox("Saisissez le prénom et le nom du destinataire, exemple : prénom.nom@xxxxx", "Messagerie Access", "@xxxxx")
If strdest = "" Then Exit Sub


URLto = "mailto:" & strdest & "?subject=" & Sujet & "&body=" & msg & txt

ActiveWorkbook.FollowHyperlink Address:=URLto
 
Re : Envoi mail avec piece jointe

bonjour KImi

j'ai mis ça sur mon projet, (trouvé sur un site belge) ça fonctionne pas mal

Sub SendMail_Outlook()

'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"

Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To ="adresse@wanadoo.fr"
.CC = "adresse@wanadoo.fr"
.Subject = "ton sujet"
.Body = "Ma vie était un enfer avant de trouver le site Excel-downlaods.com"
.Attachments.Add "C:\ton fichier.pdf"
.Send 'Display
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub


ta macro qui enregistre au format pdf m'intéresse beaucoup
peux tu la laisser ici ?
Merci

Kinel
 
Dernière édition:
Re : Envoi mail avec piece jointe

y a se code aussi qui marche bien ...

Sub Envoi_mail()
Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String
Set Ol = New Outlook.Application
Set Olmail = Ol.CreateItem(olMailItem)
With Olmail
.To = "toto@toto.com"
.CC = ""
.Subject = "Envoi automatisé"
.Body = "y a un nouveau message"
.Attachments.Add ActiveWorkbook.Path & "\nom du fichier"
.Display

End With

End Sub
 
Re : Envoi mail avec piece jointe

Bonjour , votre macro m'interesse beaucoup, et je voudrais savoir si cette variante est possible.

je suis dans un fichier excel, je clique sur un bouton de lancement de macro qui est dans ce fichier et ce fichier part par mail. On garde l'idée de l'adresse prédénie de l'objet et du texte.

Merci pour votre aide.
 
Re : Envoi mail avec piece jointe

bonjour

le code que je vous ai laissé fait ça sans problème sur mon classeur

il suffit de personnaliser les adresses, le titre, le contenu et les coordonnées du fichier à joindre

Bien cordialement
Kinel
 
Re : Envoi mail avec piece jointe

Bonjour et un grand merci a Kinel et deado pour leur messages très utiles!
J'ai toutefois 2 questions:
Comment personnaliser l'adresse mail en mettant celle contenue dans une cellule du fichier
à quoi sert "ActiveWorkbook.Path" utilisé par deado dans la ligne de code du fichier à joindre

Merci !
 
Re : Envoi mail avec piece jointe

Bonjour et un grand merci a Kinel et deado pour leur messages très utiles!
J'ai toutefois 2 questions:
Comment personnaliser l'adresse mail en mettant celle contenue dans une cellule du fichier
à quoi sert "ActiveWorkbook.Path" utilisé par deado dans la ligne de code du fichier à joindre

Merci !


Bonjour

en mettant

adresse=range("a1").value
.To = adresse

le activeWorkbook.path sert à indiquer le chemin de la pièce jointe, meme s'il s'agit du fichier ouvert.

Bonne journée
 
Re : Envoi mail avec piece jointe

Bonjour,

Quelqu'un peut me dire ce qui cloche avec ce ce code ci-dessous, j'essaye d'enregister un fichier sous le nom de : LITIGE XX ( ou XX est un N° que je récupère de la cellule I2:I3)


Dim nomfichier As Workbook
nomfichier = "LITIGE" & Range("I2:I3").Value

With ActiveWorkbook
.SaveAs Filename:=nomfichier 'ça il aime pas!

Merci
 
Re : Envoi mail avec piece jointe

Bonjour,

Quelqu'un peut me dire ce qui cloche avec ce ce code ci-dessous, j'essaye d'enregister un fichier sous le nom de : LITIGE XX ( ou XX est un N° que je récupère de la cellule I2:I3)


Dim nomfichier As Workbook
nomfichier = "LITIGE" & Range("I2:I3").Value

With ActiveWorkbook
.SaveAs Filename:=nomfichier 'ça il aime pas!

Merci


Bonjour, tente

Dim nomfichier As Workbook

numero=Range("I2:I3").Value

nomfichier = "LITIGE" & numero

With ActiveWorkbook
.SaveAs Filename:=nomfichier

ca devrait nettement mieux lui plaire !
 
Re : Envoi mail avec piece jointe

Sub Sauve()

Dim chemin As String
Dim nomfichier As Workbook
numero = Range("I2:I3").Value
With Application
.ScreenUpdating = False
.DisplayAlerts = False
chemin = "C:\Documents and Settings\HAJORINETTE\Bureau"
.DisplayAlerts = True
End With




nomfichier = "LITIGE" & numero (il n'apprécie tjrs pas😕)

With ActiveWorkbook
.SaveAs Filename:=nomfichier

End With
Application.ScreenUpdating = True

End Sub
 
Re : Envoi mail avec piece jointe

Bonjour à tous

Hajorinette, C'est la je pense que cela pose problème

Code:
Range("I2:I3").Value

Il faudrait plutôt concaténer les chaînes avec &.

Attention a ce qu'il n'y ai pas non plus des caractètres interdits dans le nom de fichier.

Sinon debug ton programme.
 
Re : Envoi mail avec piece jointe

Bonjour,
Je pense aussi que c'est dans la ligne de code que MJ13 a cité qu'il y a problème.
Le nom de fichier ne contient pas de caractères interdits.
J'ai demandé à sélectionner la feuille active pour qu'il sache ou chercher la valeur des cellules I2:I3, mais sans résultats!

Ci dessous les deux macros en question, et comme précisé ça bloque pour définir le nom

Sub Archive()
Dim nomfichier As Workbook
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
If Flag = 1 Then
Sheets("Casse").Select
Sheets("Casse").Copy
Call Sauve
End If
If Flag = 2 Then
Sheets("Défaut d'aspect").Select
Sheets("Défaut d'aspect").Copy
Call Sauve
End If
If Flag = 3 Then
Sheets("Produit manquant").Select
Sheets("Produit manquant").Copy
Call Sauve
End If
Application.ScreenUpdating = True
End Sub



Sub Sauve()
Dim chemin As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
chemin = "C:\Documents and Settings\HAJAR\Bureau"
.DisplayAlerts = True
End With
numero = Range("I2:I3").Value
nomfichier = "LITIGE" & numero
With ActiveWorkbook
.SaveAs Filename:=nomfichier
End With
Application.ScreenUpdating = True
End Sub

J'attends vos remarques et suggestions les plus farfelues.

Merci
 
Re : Envoi mail avec piece jointe

si I2=12 et I3=13 par exemple l'exmple ci-dessous marche ( j'ai testé ).

dans un autre cas de figure poste ton fichier
A+


Sub Sauve()
Dim chemin As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
chemin = "C:\"
.DisplayAlerts = True
End With


num1 = Range("I2").Value
num2 = Range("I3").Value

nomfichier = "LITIGE" & num1 & num2
With ActiveWorkbook
.SaveAs Filename:=nomfichier
End With
Application.ScreenUpdating = True
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

Discussions similaires

  • Question Question
Microsoft 365 Macro VBA
Réponses
2
Affichages
554
Réponses
7
Affichages
1 K
Réponses
10
Affichages
2 K
  • Question Question
XL 2016 Envoi mail
Réponses
0
Affichages
493
Retour