Envoi mail par VBA en lecture seul

Bonjour à tous,

Je reviens vers vous aujourd'hui car j'aimerais envoyer une feuille ou classeur mais, je souhaiterais l'envoyer en lecture seule SEULEMENT.

Je vous envois le code pour que vous puissiez m'aider.

Merci encore pour l'aide que vous m'apportez.

Code:

Sub EnvoiMail()

Dim Fichier As Variant

Fichier = Application.GetOpenFilename("tous les fichiers(*.*),*.*")

MsgBox Fichier

Dim MaMessagerie As Object

Dim MonMessage As Object

Set MaMessagerie = CreateObject("Outlook.Application")

Set MonMessage = MaMessagerie.createitem(0)

MonMessage.To = ""

MonMessage.CC = ""

MonMessage.Attachments.Add Fichier

MonMessage.Subject = "Test Compte rendu"

contenu = "Bonjour"

contenu = contenu & Chr(10) & Chr(13)

contenu = contenu & "Ci-joint le compte rendu du 25/06/2019."

MonMessage.body = contenu

MonMessage.Send

Set MaMessagerie = Nothing

End Sub

Bonjour,

Envoyer un pdf peut-être ?

ric

Oui, mais il faudrait qu'une macro le fasse

ou au pire des cas j'aimerais envoyer qu'une seul feuille du classeur mais je sais pas comment l'adapter car je n'ai pas beaucoup de conaissances en VBA

Bonjour,

... au pire des cas j'aimerais envoyer qu'une seul feuille du classeur ...

Le nom de cette feuille sera-t-il toujours le même ?

Ou devras-tu sélectionner la feuille en question ?

ric

cela sera toujours la même feuille

Bonjour,

Cette feuille, as-t-elle un nom prédéterminé ?

ric

Bonjour,

Il ne faut pas ajouter la référence à Microsoft Outlook ... les objets sont déclarés dans le code.

.Display est actif pour les tests. Tu pourras mettre cette ligne en commentaire ( au goût ).

.Send est en commentaire. Pour l'envoi automatique, réactive cette ligne. Sinon, ça donne l'occasion dans Microsoft Outlook de vérifier le courriel avant son envoi si .Display est actif.

Il restera le nom de la feuille à adapter.

Sub EnvoiMail()

Dim LeFichier As String
Dim LePdf As String
Dim MonDossier As String
Dim NomDuFichierSansExtension As String

Dim oItem As Object        ' déclarer les objets Outlook (pas besoin de référence)
Dim ObjOutlook As Object
Dim oBjMail

Const olMailItem As Long = 0

Set ObjOutlook = CreateObject("Outlook.Application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)

Dim objWorkbookSource As Workbook, objWorkbookCible As Workbook

   Set objWorkbookSource = Application.Workbooks.Open(Application.GetOpenFilename)  ' sélectionner le fichier

   LeFichier = objWorkbookSource.Name           ' récupère le nom du fichier
   MonDossier = objWorkbookSource.Path & "\"    ' récupère le chemin du fichier
   NomDuFichierSansExtension = Left(LeFichier, Len(LeFichier) - 5)  ' le nom du fichier sans extension

   With Workbooks(LeFichier)
      With .Worksheets("Feuil1")    ' le nom de la feuille >> à adapter
         LePdf = NomDuFichierSansExtension & ".pdf"   ' le fichier pdf aura le même nom
         Dossier = MonDossier
         Chemin = Dossier & LePdf
         .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
                              IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
      End With
   End With

With oBjMail
   .To = "adressededestination@ledomaine.com"      ' le destinataire < Remettre la bonne adresse
   .CC = "adresseAutre@ledomaine.com"      ' < Remettre la bonne adresse
   .Subject = "Test Compte rendu"      ' l'objet du mail
   .Attachments.Add Chemin
   .Body = "Bonjour" & Chr(10) & Chr(13) & "Ci-joint le compte rendu du 25/06/2019." & Chr(10) & Chr(13) & _
               Chr(10) & Chr(13) & "Cordialement" & Chr(10) & Chr(13) & "Nikorasu"
   .Display      '   Ici on peut supprimer pour l'envoyer sans vérification
'   .Send
End With
   Workbooks(LeFichier).Close SaveChanges:=False

Set oBjMail = Nothing
Set ObjOutlook = Nothing

End Sub

ric

Merci énormément pour cette aide ric, tu m'as beaucoup aidé que je dois réaliser.

Nikorasu

Rechercher des sujets similaires à "envoi mail vba lecture seul"