VBA enregistrer et envoyer classeur en cours par mail.

RemusV

XLDnaute Nouveau
Bonjour !

Cela fait un mois (mais de façon très assidue) que je me suis mis à VBA.

J'ai donc fait dernièrement un classeur dans lequel, grâce à une succession de userforms, une fiche de renseignements se remplit. J'ai utilisé les useforms dans le but d'obliger les gens à bien remplir le classeur comme moi je le veux. Tout va bien jusque là.

Le problème :
Sur la dernière fenêtre j'aimerais que, quand la personne clique sur un bouton (ou deux à la suite l'un de l'autre au pire), cela lui demande si elle veut enregistrer le classeur et que ça lui ouvre un mail (outlook) avec en pièce jointe le classeur rempli.

Précisions :
il ne faut pas d'adresse prédéfinie, pas forcément d'objet dans le mail, pas de corps de texte etc. Juste que ça ouvre un nouveau message outlook avec le fichier qui vient d'être enregistré et rempli en pièce jointe.

J'ai cherché un peu partout avant et je n'ai pas trouvé quoique ce soit qui me satisfasse vraiment.

Voilà merci d'avance pour vos réponses ou explications !
 

Yaloo

XLDnaute Barbatruc
Re : VBA enregistrer et envoyer classeur en cours par mail.

Bonsoir RemusV et bienvenu sur XLD,

Vois le fichier ci-dessous, il doit faire ce que tu demandes. Tu peux aussi rajouter l'adresse mail ainsi que du texte.

A+

Martial
 

Pièces jointes

  • Envoi mail.xlsm
    13.2 KB · Affichages: 222
  • Envoi mail.xlsm
    13.2 KB · Affichages: 173
  • Envoi mail.xlsm
    13.2 KB · Affichages: 179

RemusV

XLDnaute Nouveau
Re : VBA enregistrer et envoyer classeur en cours par mail.

Bonsoir RemusV et bienvenu sur XLD,

Vois le fichier ci-dessous, il doit faire ce que tu demandes. Tu peux aussi rajouter l'adresse mail ainsi que du texte.

A+

Martial

Merci Yaloo !

J'ai codé de cette manière du coup, et ça fait ce que je veux aussi :)
Merci quand même pour ta réponse.

Private Sub Envoyer_Click()
Unload END_END 'desactive le userform
Range("b42").Value = commentaires.Value 'rempli une case sur mon classeur

Dim chemin As String
Dim Obj As OLEObject, X As Integer
Dim sh As Shape


ActiveSheet.Copy


ActiveWorkbook.SendMail Recipients:=Range("c258954").Value
Application.DisplayAlerts = True
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub

Voila.
 

Discussions similaires

Réponses
2
Affichages
99

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou