OVH Cloud OVH Cloud

excel sendmail via lotus

17 réponses
Avatar
sbtlg
Bonjour,

Bon ben voila g un gros probleme et je suis un grand d=E9butant, j'ai
cherch=E9 sur le net et ici mais je ne trouve pas de solution a mon
probleme.

J'ai trouv=E9 une macro pour envoyer des mails a partir d'excel mais via
Lotus note, la voici et mon probleme est que je n'arrive pas a
selectionner une plage de cellule et de copier coller cette selection
dans le body du mail en gardant la couleur des textes.


Donc voici la macro :

Sub SendNotesMail()
'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'THe current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)
'ajout pour plage de cellule
Dim Plage As Range, T As Variant, A As Long
Dim Shap As Object, B As Integer
'Start a session to notes
Set Session =3D CreateObject("Notes.NotesSession")
'Get the sessions username and then calculate the mail file name
'You may or may not need this as for MailDBname with some systems you
'can pass an empty string
UserName =3D Session.UserName
MailDbName =3D Left$(UserName, 1) & Right$(UserName, (Len(UserName) -
InStr(1, UserName, " "))) & ".nsf"
'Open the mail database in notes
Set Maildb =3D Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen =3D True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
Set MailDoc =3D Maildb.CREATEDOCUMENT
MailDoc.Form =3D "Memo"
MailDoc.Sendto =3D "user@serveur.com" 'Worksheets(3).Cells(2, 2).Value
MailDoc.CopyTo =3D ""
MailDoc.Subject =3D Worksheets(1).Cells(1, 1).Value
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' la fonction ce-dessous fonctionne mais envoi juste une cellule
'MailDoc.Body =3D Worksheets(1).Cells(15, 4).Value
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' la fonction ce-dessous ne fonctionne pas je receptionne un mail
vierge
MailDoc.Body =3D Worksheets("Tableau de bord").Range("D15:J65")
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MailDoc.SaveMessageOnSend =3D SaveIt
'Set up the embedded object and attachment and attach it
Attachment1 =3D Worksheets(3).Cells(21, 50).Value
Attachment2 =3D Worksheets(3).Cells(22, 50).Value
Attachment3 =3D Worksheets(3).Cells(23, 50).Value
If Attachment1 <> "" And Attachment2 <> "" And Attachment3 <> "" Then
Set AttachME =3D MailDoc.CREATERICHTEXTITEM("Attachment1")
Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", Attachment1,
"Attachment1")
MailDoc.CREATERICHTEXTITEM (Attachment1)
Set AttachME =3D MailDoc.CREATERICHTEXTITEM("Attachment2")
Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", Attachment2,
"Attachment2")
MailDoc.CREATERICHTEXTITEM (Attachment2)
Set AttachME =3D MailDoc.CREATERICHTEXTITEM("Attachment3")
Set EmbedObj =3D AttachME.EMBEDOBJECT(1454, "", Attachment3,
"Attachment3")
MailDoc.CREATERICHTEXTITEM (Attachment3)
End If

'Send the document
MailDoc.PostedDate =3D Now() 'Gets the mail to appear in the sent items
folder
MailDoc.Send 0, Recipient

'Clean Up
Set Maildb =3D Nothing
Set MailDoc =3D Nothing
Set AttachME =3D Nothing
Set Session =3D Nothing
Set EmbedObj =3D Nothing

End Sub

Merci de votre aide.

7 réponses

1 2
Avatar
sbtlg
On 4 juil, 15:53, wrote:
On 4 juil, 15:40, wrote:





Merci, la ça marche pour l'envoi du mail mais le probleme c que mon
tableau se vide et je me retrouve avec tout en A1. est il possible de
garder la structure de ma page ligne par ligne dans une seul cellule
et est il possible de garde les couleurs des lignes ? ou est il
possible de faire une capture ecran et de la coller dans le body du
mail ?

Merci d'avance de votre aide.

On 4 juil, 14:45, "Daniel" wrote:

Plutôt :

Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
[A1] = Texte
Next c

Daniel
"Daniel" a écrit dans le message de news:


Désolé, en plus, c'était idiot.
Daniel
a écrit dans le message de news:

désolé marche pas et j'ai une erreur d'execution 7078 coud'nt c reate
field %1. :-(

une autre idee :-)

merci encore

On 4 juil, 12:36, "Daniel" wrote:
Dommage. A part ça, je ne travaille plus avec Lotus depuis un
bail...Essaie
en mettant :
MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65").va lue
(mais j'y crois pas beaucoup)
Daniel
a écrit dans le message de news:

Désolé ça ne marche pas et le nom de ma feuille est bien "Ta bleau de
bord".

sniff
et je ne vois pas pourquoi ça ne marche pas je reçois un mail vierge .

Merci de tin aide aurais tu une autre id"e ?

On 4 juil, 11:55, "Daniel" wrote:

' la fonction ce-dessous fonctionne mais envoi juste une cellule
'MailDoc.Body = Worksheets(1).Cells(15, 4).Value

Bonjour.
Normal. il s'agit de la cellule D15 de la première feuille.

' la fonction ce-dessous ne fonctionne pas je receptionne un mail
vierge

MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65")

Essaie :
MailDoc.Body = Worksheets(1).Range("D15:J65")
Pour savoir le nom de Worksheets(1), exécute la macro :
Sub Test()
msgbox sheets(1).Name
End Sub
Sinon, vérifie que la plage D15:J65 de la feuille "Tableau de bord")
n'est
pas vierge.
Cordialement.
Daniel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -


- Afficher le texte des messages précédents -


J'oubliais le tableau d'origine ne doit pas etre modifier. comme C'est
le cas avec la modif.

merci d'avance- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Autre petite question est il possible de renvoyer uniquement les ligne
ou le texte est en orange (46) ?

Merci d'avance.






Avatar
Daniel
Au temps pour moi; ôte :
[A1] = Texte
a écrit dans le message de news:

On 4 juil, 15:40, wrote:
Merci, la ça marche pour l'envoi du mail mais le probleme c que mon
tableau se vide et je me retrouve avec tout en A1.


Au temps pour moi; ôte :
[A1] = Texte

est il possible de
garder la structure de ma page ligne par ligne dans une seul cellule
et est il possible de garde les couleurs des lignes ? ou est il
possible de faire une capture ecran et de la coller dans le body du
mail ?


J'ai peur que non. Tu peux peut-être mettre une pièce jointe ?
Daniel


Merci d'avance de votre aide.

On 4 juil, 14:45, "Daniel" wrote:



Plutôt :

Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
[A1] = Texte
Next c

Daniel
"Daniel" a écrit dans le message de news:


Désolé, en plus, c'était idiot.
Daniel
a écrit dans le message de news:

désolé marche pas et j'ai une erreur d'execution 7078 coud'nt create
field %1. :-(

une autre idee :-)

merci encore

On 4 juil, 12:36, "Daniel" wrote:
Dommage. A part ça, je ne travaille plus avec Lotus depuis un
bail...Essaie
en mettant :
MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65").value
(mais j'y crois pas beaucoup)
Daniel
a écrit dans le message de news:

Désolé ça ne marche pas et le nom de ma feuille est bien "Tableau de
bord".

sniff
et je ne vois pas pourquoi ça ne marche pas je reçois un mail vierge
.

Merci de tin aide aurais tu une autre id"e ?

On 4 juil, 11:55, "Daniel" wrote:

' la fonction ce-dessous fonctionne mais envoi juste une cellule
'MailDoc.Body = Worksheets(1).Cells(15, 4).Value

Bonjour.
Normal. il s'agit de la cellule D15 de la première feuille.

' la fonction ce-dessous ne fonctionne pas je receptionne un mail
vierge

MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65")

Essaie :
MailDoc.Body = Worksheets(1).Range("D15:J65")
Pour savoir le nom de Worksheets(1), exécute la macro :
Sub Test()
msgbox sheets(1).Name
End Sub
Sinon, vérifie que la plage D15:J65 de la feuille "Tableau de
bord")
n'est
pas vierge.
Cordialement.
Daniel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -


- Afficher le texte des messages précédents -


J'oubliais le tableau d'origine ne doit pas etre modifier. comme C'est
le cas avec la modif.

merci d'avance





Avatar
Daniel
Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Font.ColorIndex = 46 Then
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
End If
Next c

Daniel
"Daniel" a écrit dans le message de news:

Au temps pour moi; ôte :
[A1] = Texte
a écrit dans le message de news:

On 4 juil, 15:40, wrote:
Merci, la ça marche pour l'envoi du mail mais le probleme c que mon
tableau se vide et je me retrouve avec tout en A1.


Au temps pour moi; ôte :
[A1] = Texte

est il possible de
garder la structure de ma page ligne par ligne dans une seul cellule
et est il possible de garde les couleurs des lignes ? ou est il
possible de faire une capture ecran et de la coller dans le body du
mail ?


J'ai peur que non. Tu peux peut-être mettre une pièce jointe ?
Daniel


Merci d'avance de votre aide.

On 4 juil, 14:45, "Daniel" wrote:



Plutôt :

Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
[A1] = Texte
Next c

Daniel
"Daniel" a écrit dans le message de news:


Désolé, en plus, c'était idiot.
Daniel
a écrit dans le message de news:

désolé marche pas et j'ai une erreur d'execution 7078 coud'nt create
field %1. :-(

une autre idee :-)

merci encore

On 4 juil, 12:36, "Daniel" wrote:
Dommage. A part ça, je ne travaille plus avec Lotus depuis un
bail...Essaie
en mettant :
MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65").value
(mais j'y crois pas beaucoup)
Daniel
a écrit dans le message de news:

Désolé ça ne marche pas et le nom de ma feuille est bien "Tableau de
bord".

sniff
et je ne vois pas pourquoi ça ne marche pas je reçois un mail vierge
.

Merci de tin aide aurais tu une autre id"e ?

On 4 juil, 11:55, "Daniel" wrote:

' la fonction ce-dessous fonctionne mais envoi juste une cellule
'MailDoc.Body = Worksheets(1).Cells(15, 4).Value

Bonjour.
Normal. il s'agit de la cellule D15 de la première feuille.

' la fonction ce-dessous ne fonctionne pas je receptionne un mail
vierge

MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65")

Essaie :
MailDoc.Body = Worksheets(1).Range("D15:J65")
Pour savoir le nom de Worksheets(1), exécute la macro :
Sub Test()
msgbox sheets(1).Name
End Sub
Sinon, vérifie que la plage D15:J65 de la feuille "Tableau de
bord")
n'est
pas vierge.
Cordialement.
Daniel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -


- Afficher le texte des messages précédents -


J'oubliais le tableau d'origine ne doit pas etre modifier. comme C'est
le cas avec la modif.

merci d'avance









Avatar
sbtlg
On 4 juil, 16:43, "Daniel" wrote:
Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Font.ColorIndex = 46 Then
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
End If
Next c

Daniel
"Daniel" a écrit dans le message de news:




Au temps pour moi; ôte :
[A1] = Texte
a écrit dans le message de news:

On 4 juil, 15:40, wrote:
Merci, la ça marche pour l'envoi du mail mais le probleme c que mon
tableau se vide et je me retrouve avec tout en A1.


Au temps pour moi; ôte :
[A1] = Texte

est il possible de
garder la structure de ma page ligne par ligne dans une seul cellule
et est il possible de garde les couleurs des lignes ? ou est il
possible de faire une capture ecran et de la coller dans le body du
mail ?


J'ai peur que non. Tu peux peut-être mettre une pièce jointe ?
Daniel

Merci d'avance de votre aide.

On 4 juil, 14:45, "Daniel" wrote:

Plutôt :

Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
[A1] = Texte
Next c

Daniel
"Daniel" a écrit dans le message de news:


Désolé, en plus, c'était idiot.
Daniel
a écrit dans le message de news:

désolé marche pas et j'ai une erreur d'execution 7078 coud'nt create
field %1. :-(

une autre idee :-)

merci encore

On 4 juil, 12:36, "Daniel" wrote:
Dommage. A part ça, je ne travaille plus avec Lotus depuis un
bail...Essaie
en mettant :
MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65").v alue
(mais j'y crois pas beaucoup)
Daniel
a écrit dans le message de news:

Désolé ça ne marche pas et le nom de ma feuille est bien "T ableau de
bord".

sniff
et je ne vois pas pourquoi ça ne marche pas je reçois un mail vierge
.

Merci de tin aide aurais tu une autre id"e ?

On 4 juil, 11:55, "Daniel" wrote:

' la fonction ce-dessous fonctionne mais envoi juste une cellule
'MailDoc.Body = Worksheets(1).Cells(15, 4).Value

Bonjour.
Normal. il s'agit de la cellule D15 de la première feuille.

' la fonction ce-dessous ne fonctionne pas je receptionne un ma il
vierge

MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65")

Essaie :
MailDoc.Body = Worksheets(1).Range("D15:J65")
Pour savoir le nom de Worksheets(1), exécute la macro :
Sub Test()
msgbox sheets(1).Name
End Sub
Sinon, vérifie que la plage D15:J65 de la feuille "Tableau de
bord")
n'est
pas vierge.
Cordialement.
Daniel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le tex te des
messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -


- Afficher le texte des messages précédents -


J'oubliais le tableau d'origine ne doit pas etre modifier. comme C'est
le cas avec la modif.

merci d'avance- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


alors la grand merci tu me sauve vraiment je galere depis longtemps
pour fairecela avc notes

vraiment grand merci Daniel







Avatar
sbtlg
On 4 juil, 16:58, wrote:
On 4 juil, 16:43, "Daniel" wrote:





Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Font.ColorIndex = 46 Then
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
End If
Next c

Daniel
"Daniel" a écrit dans le message de news:


Au temps pour moi; ôte :
[A1] = Texte
a écrit dans le message de news:

On 4 juil, 15:40, wrote:
Merci, la ça marche pour l'envoi du mail mais le probleme c que mon
tableau se vide et je me retrouve avec tout en A1.


Au temps pour moi; ôte :
[A1] = Texte

est il possible de
garder la structure de ma page ligne par ligne dans une seul cellule
et est il possible de garde les couleurs des lignes ? ou est il
possible de faire une capture ecran et de la coller dans le body du
mail ?


J'ai peur que non. Tu peux peut-être mettre une pièce jointe ?
Daniel

Merci d'avance de votre aide.

On 4 juil, 14:45, "Daniel" wrote:

Plutôt :

Dim c As Range, Texte As String
For Each c In Sheets(1).Range("D15:J65")
If c.Column = 10 Then
Texte = Texte & c & Chr(10)
Else
Texte = Texte & c & " "
End If
[A1] = Texte
Next c

Daniel
"Daniel" a écrit dans le message de new s:


Désolé, en plus, c'était idiot.
Daniel
a écrit dans le message de news:

désolé marche pas et j'ai une erreur d'execution 7078 coud'n t create
field %1. :-(

une autre idee :-)

merci encore

On 4 juil, 12:36, "Daniel" wrote:
Dommage. A part ça, je ne travaille plus avec Lotus depuis un
bail...Essaie
en mettant :
MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65") .value
(mais j'y crois pas beaucoup)
Daniel
a écrit dans le message de news:

Désolé ça ne marche pas et le nom de ma feuille est bien "Tableau de
bord".

sniff
et je ne vois pas pourquoi ça ne marche pas je reçois un ma il vierge
.

Merci de tin aide aurais tu une autre id"e ?

On 4 juil, 11:55, "Daniel" wrote:

' la fonction ce-dessous fonctionne mais envoi juste une cell ule
'MailDoc.Body = Worksheets(1).Cells(15, 4).Value

Bonjour.
Normal. il s'agit de la cellule D15 de la première feuille.

' la fonction ce-dessous ne fonctionne pas je receptionne un mail
vierge

MailDoc.Body = Worksheets("Tableau de bord").Range("D15:J65 ")

Essaie :
MailDoc.Body = Worksheets(1).Range("D15:J65")
Pour savoir le nom de Worksheets(1), exécute la macro :
Sub Test()
msgbox sheets(1).Name
End Sub
Sinon, vérifie que la plage D15:J65 de la feuille "Tableau de
bord")
n'est
pas vierge.
Cordialement.
Daniel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le t exte des
messages précédents -



- Afficher le texte des messages précédents -- Masquer le text e des
messages précédents -


- Afficher le texte des messages précédents -


J'oubliais le tableau d'origine ne doit pas etre modifier. comme C'est
le cas avec la modif.

merci d'avance- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


alors la grand merci tu me sauve vraiment je galere depis longtemps
pour fairecela avc notes

vraiment grand merci Daniel- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


euh une derniere petite question Daniel a la fin de mon traitement
j'ai coller cela :
SendKeys "%FG", True
normalement pour lancer un enregistrement de mon ficher mais cela ne
fonctionne pas j'ai oublié un truc ?








Avatar
Daniel
euh une derniere petite question Daniel a la fin de mon traitement
j'ai coller cela :
SendKeys "%FG", True
normalement pour lancer un enregistrement de mon ficher mais cela ne
fonctionne pas j'ai oublié un truc ?

Essaie de mettrre une tempo avant le sendkeys :
Application.Wait Now() + TimeValue("00:00:10")
Daniel
Avatar
sbtlg
On 4 juil, 17:38, "Daniel" wrote:
euh une derniere petite question Daniel a la fin de mon traitement
j'ai coller cela :
SendKeys "%FG", True
normalement pour lancer un enregistrement de mon ficher mais cela ne
fonctionne pas j'ai oublié un truc ?

Essaie de mettrre une tempo avant le sendkeys :
Application.Wait Now() + TimeValue("00:00:10")
Daniel


ok Merci encore Daniel je testerais demain matin maintenant encore un
grnd merci pour ton aide

1 2