Envoi de mail automatique

Bonjour,

J'ai mon code Macro excel qui me sort une feuille PDF dans mon dossier Documents en cachant les colones que je ne veux pas, c'est parfait. Mais il y à des choses que j'aimerai améliorée.

Sub SavePDF_Selection()

With ActiveSheet

.Range("C:D,F:F,K:L,R:S,U:U").EntireColumn.Hidden = True

Selection.ExportAsFixedFormat Type:=xlTypePDF

.Range("C:D,F:F,K:L,R:S,U:U").EntireColumn.Hidden = False

End With

End Sub

J'aimerai savoir s'il y avait une possibilité d'envoyer le fichier qui sort quand je sélectionne mes données et que j'appuie sur mon bouton (Le PDF) par mail, essentiellement à deux personnes ? Je sais qu'il faut installer certains outils mais je suis vite perdu.

Cette fonction Macro est mise en place sur quasiment toute les feuilles de mon classeur excel, pour sortir le PDF à chaque fois.

J'avais aussi pensé à faire une fonction du genre "créer ce fichier PDF avec ces fonctions la (colonnes cachées) + Nom du fichier + Date du jour acquis dynamiquement.pdf + envoi du mail à 2 mails distincts avec comme objet nom du fichier)

Merci d'avance aux personnes qui pourraient me trouver quelques pistes intéressantes

Bonjour,

Quelle messagerie utilises-tu ?

Voici un exemple avec outlook. Il faut sans doute changer quelques paramètres dans la macro.

Merci pour ta réponse rapide

Dans nos boutiques c'est bien Outlook.

Mais j'ai eu des erreurs avec le code qui me dis soit que l'application Outlook n'est pas installé (alors qu'elle l'est) ou alors erreur 404 net objet ne prend pas en charge cette fonction (J'ai essayé sur ton fichier excel)

J'ai juste mis une adresse email entre les [ ] du champ email de la fonction envoi et cela me sort cette erreur 404. Faut il forcément mettre l'email dans le corps de la feuille concernée ? Car ce que m'a macro plus haut fait, c'est qu'elle créer un pdf avec une sélection de ma feuille, qu'elle met dans mon dossier document.

J'ai juste mis une adresse email entre les [ ] du champ email de la fonction envoi et cela me sort cette erreur 404.

Soit tu mets entre guillemets l'adresse mail

.to = "nom.prenom@faii.fr"

Soit tu mets l'adresse dans la cellule nommée destinataire (en C3 ici)

Faut il forcément mettre l'email dans le corps de la feuille concernée ?

justement non, [destinataire] équivaut à range("destinataire")

Parfait !

Et c'est possible que je fasse les deux macro d'un coup ? Que quand je sélectionne les cellules de ma feuille et que je clique sur le bouton exporter le PDF, ça créer le fichier, l'envoie et le détruises comme sur ton macro ? (CF mon code au dessus avec la macro qui cache une bonne partie des colonnes de la feuille sur le PDF final)

Cdt et un gros merci à toi

Fais un essai comme ceci ...

Option Explicit
Sub envoi()

Dim messagerie As Object
Dim email As Object
Dim nompdf As String
Dim nomfichier As String

On Error GoTo erreur

    nomfichier = "donner_un_nom_ici"

    nompdf = Environ("Temp") & "\" & nomfichier

    With ActiveSheet
        .Range("C:D,F:F,K:L,R:S,U:U").EntireColumn.Hidden = True
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf"
        .Range("C:D,F:F,K:L,R:S,U:U").EntireColumn.Hidden = False
    End With

    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    With email
        .to = [destinataire]
        .Subject = [titre]
        .body = "Veuillez trouver en pièce jointe ..."
        .ReadReceiptRequested = True
        .Attachments.Add nompdf & ".pdf"
        .display
    End With
    Set email = Nothing
    Set messagerie = Nothing

    Kill Environ("Temp") & "\" & nomfichier & ".pdf"

Exit Sub

erreur:

    MsgBox "Erreur : " & Err.Number & vbLf & Err.Description

End Sub

Sub test_outlook()
Dim messagerie As Object
On Error GoTo err_handler
Set messagerie = CreateObject("Outlook.Application")
err_handler:
    MsgBox "L'application Outlook est absente de ce poste de travail !"
End Sub

C'est parfait, ça marche super bien ! Merci beaucoup ! Cela va me sauver tellement de temps tous les jours ! J'ai juste une question, est ce que le nom du fichier pdf que l'ont défini dans la macro peut récupérer automatique la date du jour ?

Par exemple feuille de jour... 04/05/2020 (pour le stockage futur et recherche rapide)

En tous cas, énorme MERCI

Essaie

nomfichier = "donner_un_nom_ici" & format(date,"yyyy-mm-dd")

pas de / dans les noms de fichier

ça marche parfaitement mais la j'avais envoyé depuis un compte hotmail.fr et j'ai assayé d'envoyer depuis une adresse de notre domaine chez OVH et la, ça fait bien le mail mais quand je veux l'envoyer, ça me dis que les interfaces de messageries ont renvoyées une erreur inconnue

Selon les FAI, les mails auto peuvent très bien être refusés dès lors que le smtp n'est pas celui du FAI. Et parfois il faut aussi se signer auparavant.

Est-ce qu'un envoi manuel fonctionne avec ces adresses ?

Rechercher des sujets similaires à "envoi mail automatique"