Integrer la valeur d'une cellule en VBA

Sophie11

XLDnaute Occasionnel
Je prepare actuellement une macro qui enverra un mail à partir d'une messagerie Lotus, je souhaite integrer dans le corps du mail certaine valeur d'une cellule excel.

Dim oItem As Object
' Variable TEXTE

With oItem
.AppendText "XXX YYY"
.AddNewLine 1
End With


Je voudrais que ce XXX et YYY corresponde à mes cellule A1:B4. L'objectif est de pouvoir modifier facilement le contenue de ces cellules sans modifier le code VBA... :confused:

Si vous avez-vous une idée de code?? :):)
 

Odesta

XLDnaute Impliqué
Re : Integrer la valeur d'une cellule en VBA

Bonjour Sophie11

personnellement, j'utilise, via lotus 8.5 des envois automatiques, pour le sujet et le corps, j'utilise :

[...].Subject = sujet_message '(en string)

[...].Body = corps_message '(en string aussi )

Si vous n'y arrivez pas avec ceci, pouvez-vous joindre votre code svp ?

Cordialement

Olivier
 

Sophie11

XLDnaute Occasionnel
Re : Integrer la valeur d'une cellule en VBA

Votre code m'interesse ! Je sais toujours pas comment integrer des valeurs de cellules dans le coprs de mon message. (je ne veus pas de piece jointe)

Option Explicit

Sub SendNotesMsg()
'*******************************************************************************
Dim oSess As Object
Dim oDB As Object
Dim oDoc As Object
Dim oItem As Object
' Variable TEXTE
Dim ntsServer As String
Dim ntsMailFile As String
'
Dim EMailSendTo As String
Dim EMailCopyTo As String
Dim EMailSubject As String
Dim MailPJ As String
Dim LotusSRV As String
Dim WbkName As String

'*****************************************************************************
On Error GoTo err_SendNotesMsg
' Initialisation des variables
EMailSendTo = "Ploum"
EMailCopyTo = "Adresse Mail de copie"
EMailSubject = "Test Subj"

' Créer une nouvelles session Notes
Set oSess = CreateObject("Notes.NotesSession")

' Récupérer le nom du serveur
ntsServer = oSess.GetEnvironmentString("MailServer", True)

'Acquière le nom du fichier mailfile de l'utilisateur courant dans Notes.ini
ntsMailFile = oSess.GetEnvironmentString("MailFile", True)
Set oDB = oSess.GetDatabase(ntsServer, ntsMailFile)
Set oDoc = oDB.CreateDocument
' Définit les éléments à rajouter au message
Set oItem = oDoc.createRichTextItem("BODY")

oDoc.Form = "Memo"
' Préparer les destinataires
oDoc.Sendto = EMailSendTo
If Not IsMissing(EMailCopyTo) Then
oDoc.Copyto = EMailCopyTo
End If
' Préparer le sujet du message
If Not IsMissing(EMailSubject) Then
If EMailSubject <> "" Then oDoc.Subject = EMailSubject
End If
oDoc.FROM = oSess.CommonUserName
oDoc.PostedDate = Date
' Pour avoir un accusé de réception
oDoc.ReturnReceipt = "1"
'
' Préparer les texte
With oItem
.AppendText "CECI EST MON TEXTE (LIGNE1)"
.AddNewLine 1
.AppendText "CECI EST MON TEXTE (LIGNE2)"
.AddNewLine 2
End With


' Créer la pièce jointe
' Ca peut être le classeur
WbkName = ThisWorkbook.FullName
'Attachement du classeur au mail
Call oItem.embedObject(1454, "", "P:\Documents\Book1.xls", "")

' Ou Attachement d'un document
'Call oItem.embedObject(1454, "", "Chemin et nom complet du doc","")

' Message de salutation
oItem.AddNewLine 1
oItem.AppendText "Cordialement"

' Envoyer le message
oDoc.send False
'
MsgBox "Le message a été envoyé", vbInformation, "MESSAGE LOTUS ..."

exit_SendNotesMsg:
On Error Resume Next
Set oSess = Nothing
Set oDB = Nothing
Set oDoc = Nothing
Set oItem = Nothing
Exit Sub

err_SendNotesMsg:
If Err.Number = 7225 Then
MsgBox "Impossible d'attacher le fichier, vérifier le chemin!", vbCritical
Else
MsgBox "[" & Err.Number & "]: " & Err.Description
End If
MsgBox "Message non envoyé suite erreur!", vbCritical
Resume exit_SendNotesMsg
End Sub
 

Odesta

XLDnaute Impliqué
Re : Integrer la valeur d'une cellule en VBA

Essayer ceci :

Quelque part, déclarez et remplissez corps_message

corps_message = "CECI EST MON TEXTE (LIGNE1)" & CHAR(10) & "CECI EST MON TEXTE (LIGNE2)"
ou plutot
corps_message = range("A1").value & CHAR(10) & range("A2").value

Puis, dans votre code, à la place de With oItem [...] End With :

' Préparer les texte
oDoc.Body = corps_message



Est-ce que cela fonctionne ?
 

Sophie11

XLDnaute Occasionnel
Re : Integrer la valeur d'une cellule en VBA

Pourquoi ne pas faire directement :

oDoc.Body = range("A1").value & CHAR(10) & range("A2").value
mais en faisant ainsi j'obtient une complile Error, sub or function not defined avec CHAR en surbrillance... et si je supprime CHAR j'ai un " ; " en guise d'espace :(
 

Odesta

XLDnaute Impliqué
Re : Integrer la valeur d'une cellule en VBA

je n'ai pas réussi à insérer autre chose qu'une 'string' dans les mails auto que j'envoie. Je ne connait pas du tout les commandes utilisée pour Lotus.

Donc, je me suis toujours appliqué à n'envoyer que des données sur une ou plusieurs lignes, et des pièces jointes.

désolé !
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa