VBA cmt envoyer mail pour chaque feuille ?
Jabba the Hutt
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
tompols Messages postés 1273 Date d'inscription Statut Contributeur Dernière intervention -
tompols Messages postés 1273 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
J'ai réussi à trouver le code suivant sur internet.
Il me permet d'envoyer mon classeur excel par mail à un destinataire chosi, cependant je ne trouve pas la variable à changer pour ne pas envoyer tout le classeur mais uniquement une feuille (en fait feuille après feuille).
A noter que pour appeler une feuille je fait référence à son nom de la mannière suivante : Sheets(MaCellule.Value).
A mon avis ça se joue par ici, mais je ne suis pas certain : Set object = rtitem.embedObject(1454, "", nom, "")
Merci pour votre aide !
Le code en question :
Sub UseLotus()
Dim Session As Object
Dim db As Object
Dim doc As Object
Dim rtitem As Object
Dim object As Object
Dim fs As Object
Dim Principaux(2) As String
Dim Copies(3) As String
Dim dir As Object
Dim inti As Integer
Dim passwd As String
On Error GoTo TraiteErreur
'Demande le password Lotus(Dans le cas ou la session necessite un passwd)
passwd = InputBox("Entrer votre password Lotus:", "Password")
' Création de la session Notes
Set Session = CreateObject("Lotus.NOTESSESSION")
'Ouverture d'une session NOTES
Call Session.Initialize(passwd) 'si pas de passwd pas de parametre pour initialize
Set dir = Session.GETDBDIRECTORY("FranceServer1/DCI/BME/Omnia Group")
Set db = dir.OpenMailDatabase
' Création d'un document
Set doc = db.CREATEDOCUMENT
'affectation du type mail
Call doc.APPENDITEMVALUE("Form", "Memo")
Call doc.APPENDITEMVALUE("Sendto", "exemple@gmail.com")
Call doc.APPENDITEMVALUE("subject", "exemple" & Format(Date, "dd/mmm/yy"))
doc.SAVEMESSAGEONSEND = saveit 'sauvegarde du mail à l envoi
Set rtitem = doc.createRichTextItem("Body")
Dim nom As String
nom = ThisWorkbook.FullName
'Attachement du classeur au mail
Set object = rtitem.embedObject(1454, "", nom, "")
Call doc.Send(True)
Set object = Nothing
Set rtitem = Nothing
Set doc = Nothing
Set db = Nothing
Set Session = Nothing
Exit Sub
TraiteErreur:
MsgBox "Erreur Critique durant l envoi .", vbCritical, "Error"
Set object = Nothing
Set rtitem = Nothing
Set doc = Nothing
Set db = Nothing
Set Session = Nothing
Set fs = Nothing
End Sub
J'ai réussi à trouver le code suivant sur internet.
Il me permet d'envoyer mon classeur excel par mail à un destinataire chosi, cependant je ne trouve pas la variable à changer pour ne pas envoyer tout le classeur mais uniquement une feuille (en fait feuille après feuille).
A noter que pour appeler une feuille je fait référence à son nom de la mannière suivante : Sheets(MaCellule.Value).
A mon avis ça se joue par ici, mais je ne suis pas certain : Set object = rtitem.embedObject(1454, "", nom, "")
Merci pour votre aide !
Le code en question :
Sub UseLotus()
Dim Session As Object
Dim db As Object
Dim doc As Object
Dim rtitem As Object
Dim object As Object
Dim fs As Object
Dim Principaux(2) As String
Dim Copies(3) As String
Dim dir As Object
Dim inti As Integer
Dim passwd As String
On Error GoTo TraiteErreur
'Demande le password Lotus(Dans le cas ou la session necessite un passwd)
passwd = InputBox("Entrer votre password Lotus:", "Password")
' Création de la session Notes
Set Session = CreateObject("Lotus.NOTESSESSION")
'Ouverture d'une session NOTES
Call Session.Initialize(passwd) 'si pas de passwd pas de parametre pour initialize
Set dir = Session.GETDBDIRECTORY("FranceServer1/DCI/BME/Omnia Group")
Set db = dir.OpenMailDatabase
' Création d'un document
Set doc = db.CREATEDOCUMENT
'affectation du type mail
Call doc.APPENDITEMVALUE("Form", "Memo")
Call doc.APPENDITEMVALUE("Sendto", "exemple@gmail.com")
Call doc.APPENDITEMVALUE("subject", "exemple" & Format(Date, "dd/mmm/yy"))
doc.SAVEMESSAGEONSEND = saveit 'sauvegarde du mail à l envoi
Set rtitem = doc.createRichTextItem("Body")
Dim nom As String
nom = ThisWorkbook.FullName
'Attachement du classeur au mail
Set object = rtitem.embedObject(1454, "", nom, "")
Call doc.Send(True)
Set object = Nothing
Set rtitem = Nothing
Set doc = Nothing
Set db = Nothing
Set Session = Nothing
Exit Sub
TraiteErreur:
MsgBox "Erreur Critique durant l envoi .", vbCritical, "Error"
Set object = Nothing
Set rtitem = Nothing
Set doc = Nothing
Set db = Nothing
Set Session = Nothing
Set fs = Nothing
End Sub
A voir également:
- VBA cmt envoyer mail pour chaque feuille ?
- Gmail envoyer un mail - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
4 réponses
Re,
bon jconnais pas bien lotusnotes (beurk!), mais vu que tu sais envoyer un classeur complet (fichier joint embedObject) tu peux toujours utiliser un 'workaround' :
tu enregistres la feuille que tu veux envoyer ds un nouveau classeur en stockant le nom ds une variable, tu envoies ce classeur en piece jointe et après tu le supprimes....
bon jconnais pas bien lotusnotes (beurk!), mais vu que tu sais envoyer un classeur complet (fichier joint embedObject) tu peux toujours utiliser un 'workaround' :
tu enregistres la feuille que tu veux envoyer ds un nouveau classeur en stockant le nom ds une variable, tu envoies ce classeur en piece jointe et après tu le supprimes....