Code VBA envoi feuil xlsx par Outlook

Fermé
MAN78460 Messages postés 16 Date d'inscription mardi 7 août 2018 Statut Membre Dernière intervention 5 octobre 2018 - 5 oct. 2018 à 14:33
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 5 oct. 2018 à 14:44
Bonjour,

3 jours que je cherche le bon code pour mes besoins...

J'ai plusieurs feuilles dans mon classeur, mais chaque feuille peut avoir un destinataire différents

2 Boutons qui fonctionne bien (merci tuto youtube et CCM, en suivant les instructions pas à pas ça marche)

1- archive la feuille en PDF
2- envoi via outlook en PDF

et celui qui me manque le N°3 envoi la feuille en excel sauf si on peut insérer le code dans le bouton 2, ça fera un seul envoi PDF et XLSX

Je débute, j'ai tout fouillé et essayé un tas de code, mais là je seche


Voici les codes que j'utilise

'procedure permettant d'archivé le contenu d'une feuille excel

Sub ArchiveRapport()

'déclaration des variables
Dim CheminAcces As String
Dim Reponse As Integer
'affectation de la variable

CheminAcces = "C:\Facturation transport\001-2 Contrôle factures 2018\Avril à Mars 2019\Archive_envoi_ano_facturation\"
Reponse = MsgBox("Désirez-vous sauvegarder le rapport ? ", vbQuestion + vbYesNo, "Enregistrement")

'on test la réponse de l'utilisateur
If Reponse = vbYes Then

Feuil20.ExportAsFixedFormat xlTypePDF, CheminAcces & "Synthèse" & Feuil20.Range("A124").Value & ".pdf", xlQualityStandard, _
True, False, , , False
MsgBox "Resultat du rapport des anomalies" & Feuil20.Range("a1").Value & " a été sauvegardé", vbOKOnly + vbInformation, "SAUVEGARDE"

Else

Exit Sub 'on quitte la procédure

End If

End Sub

-----------------------------------
'procedure permettant l'envoi par email d'une feuille excelOption Explicit

Sub MessageOutlook()

'décalration des variables
Dim MaMessagerie As Object 'messagerie Outlook
Dim MonMessage As Object 'le message à envoyer
Dim MonContenu As String 'le contenu du message envoyé
Dim AdresseEmail As String 'l'adresse du destinataire
Dim MonTDB As String 'le nom du classeur
Dim MonClasseur As String 'nom du classeur

'affectation des variables
Set MaMessagerie = CreateObject("Outlook.Application")
Set MonMessage = MaMessagerie.CreateItem(0)
AdresseEmail = "xxx@xxxx.com"
AdresseEmail = "xxx@xxx.fr"
MonTDB = "Synthèse contrôle facturation"

'on créé le fichier pdf temporaire avant de le supprimer
Feuil20.ExportAsFixedFormat xlTypePDF, ActiveWorkbook.Path & "\" & MonTDB & ".pdf", xlQualityStandard, True, False, 1, 1, False

'creation du messsage à envoyer
With MonMessage

.To = AdresseEmail 'detinataire du message
.Subject = "Synthèse contrôle facturation"
MonContenu = "Bonjour Patricia," & vbNewLine & vbNewLine & "Tu trouveras en pièce jointe un fichier synthèse des anomalies des opérations de : " & vbNewLine & Feuil20.Range("b1").Value & vbNewLine & vbNewLine & vbNewLine & "Cordialement" & vbNewLine & vbNewLine & "Manuel Bogalheiro"

'on affecte le contenu dans le corp du message
.Body = MonContenu
'on recupere le nom du fichier dans une variable
MonClasseur = ActiveWorkbook.Path & "\" & MonTDB & ".pdf"
'ont joint mon fichier
.Attachments.Add (MonClasseur)
.Send

End With

'on confirme l'envoi du mail

MsgBox "le mail à été envoyé", vbInformation + vbOKOnly, "message"
'on supprime le fichier temporaire
Kill ActiveWorkbook.Path & "\" & MonTDB & ".pdf"
'on libere la memoire de la messagerie outlook
Set MaMessagerie = Nothing

End Sub



Merci à vous

A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
5 oct. 2018 à 14:44
Bonjour,

Voir ceci pour ajouter une pièce jointe dans le même envoi:

https://docs.microsoft.com/fr-fr/office/vba/api/Outlook.Attachments.Add

0