placement d'une pièce jointe dans un fichier outlook

darkspoilt

Expert
bonjour j'aimerais mette ma pièce jointe dans le corps du message a une place précise
SI quelqu'un sait comment faire merci d'avance
j'ai essayé le code suivant mais ma pièce joite est a la fin du message alors que j'aimerais qu'il soit entre deux ligne bien précise.
Merci d'avance a ceux qui pourront m'aider

[cpp]

Set MonOutLook = CreateObject("Outlook.Application")
Set MonMessage = MonOutLook.Createitem(0)
MonMessage.to = adresse
MonMessage.cc = adressecc
MonMessage.bcc = ""
MonMessage.Subject = Test
MonMessage.Attachments.Add "D:\Test.xls"

'On écrit le corps du message
'Le corps du message est divisé en X lignes :
Corps = b3
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b9

'endroit ou j'aimerais placer l'icone de ma pièce jonte
'essau de code mais sans résultats
Corps = Corps & attachement

Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b10
Corps = Corps & Chr(13) & Chr(10)

MonMessage.body = Corps


MonMessage.Send[/cpp]
 

darkspoilt

Expert
le mail est un texte enrichi mais je ne sais pas comment utiliser
cette fonction

[cpp]MonMessage.attachments(1).Position[/cpp]

pour définir de la pièce jointe dans le texte enrichi
 

zeb

Modérateur
Ben il manque quand même quelque chose d'énorme : Qu'est-ce que MonMessage ? (objet MAPI, objet Outlook, autre ?)


(Pour info Chr(13) & Chr(10) = vbCrLf ;) )
 

darkspoilt

Expert
oui excuse moi
la rectification est faite
sinon ma pièce jointe se met a la fin du corps dem on texte
et mon email est ecris en texte enrichi
 

zeb

Modérateur
Ligne 7 de ton code.

La méthode Add attend 4 paramètres. Les 3 derniers sont facultatifs. Or justement, le troisième paramètre, Position, est celui qui t'intéresse.

Il me semble qu'il faut que le corps du message doit exister pour que tu puisses y insérer correctement ta PJ. Vérifie. Et dis-nous ;)


EDIT: \:o/
 

darkspoilt

Expert
ca fait que dalle
j'ai écris

[cpp]MonMessage.attachments.Add "D:\Test.xls", , 50[/cpp]

avant et après

[cpp]MonMessage.body = Corps[/cpp]
 

zeb

Modérateur
Et il fait 50 caractères ton corps de message ?
Essaye avec 1, 10, 100, etc.
Et fait varier les autres paramètres, surtout AttachmentType.

Enfin, bref. Essaye. Tourne le problème dans tous les sens.
(Bah, alors darkspoilt ? Je t'ai connu plus débrouillard :o )

(Désol', je n'ai pas Outlook pour tester. Mais comme je dis comme MSDN... :whistle: )
 

darkspoilt

Expert
justement j'ai beau mettre tous les chifres non il ne fait pas 50 mon coprs de message mais je veux que ma PJ soit après le 50ème caractère
après ma PF reste tjs a la fin
 

hoegarden31

Expert
lol je pense que ton probleme viens du fait que si il y a pas 50 caracteres il sait plus ou le mettre vu qu'il y a plus de 50 caracteres ^^
 

darkspoilt

Expert
bah mon essage est fixe il comporte environ 300 ou 400 caractères j'ai pas le courage de tout compter

et puis même quand je met 1 qui est censé me le mettre au début du message ma pièce jointe est a la fin
 

zeb

Modérateur
>>et puis même quand je met 1
Ah, voilà un truc objectif.

Et en faisant varier les autres paramètres ?
Et en suivant l'exemple de Krosoft (voir lien plus haut) ?
 

darkspoilt

Expert
[cpp]
Dim MonOutlook As Outlook.MailItem
Set MonOutlook = Application.CreateItem(olMailItem)[/cpp]

le message [fixed]propriété ou méthode non généra par cette objet[/fixed] sur la ligne 2
J'ai bien les références outlook library

:??:
 

zeb

Modérateur
VBA dans quelle application ?

Tu es dans Excel ou dans Access par exemple. Donc l'objet Application, c'est Excel.Application ou Access.Application.

Toi, tu as besoin d'un objet Outlook.Application.
Prière de faire un
Code:
Dim MonOutlookMessage As Outlook.MailItem
Set MaOutLookApplication = CreateObject("Outlook.Application" )
Set MonOutlookMessage = MaOutLookApplication .CreateItem(olMailItem)
 

darkspoilt

Expert
Ma PJ est toujours a la fin alors que je le demande de le mettre au début

Je ne comprends vraiment pas :??:

[cpp]
Dim MonOutlook As Outlook.MailItem
Dim MesAttachements As Outlook.Attachments
Dim MaOutLookApplication As Object

'Création du message mail

Set MaOutLookApplication = CreateObject("Outlook.Application")
Set MonOutlookMessage = MaOutLookApplication.CreateItem(olMailItem)
Set MesAttachements = MonOutlookMessage.Attachments

'Remplissage du mail avec les données "adresse", "corps" , "signature" et "sujet"
MonOutlookMessage.to = adresse
MonOutlookMessage.cc = adressecc
MonOutlookMessage.bcc = ""
MonOutlookMessage.Subject = "toto"

'On écrit le corps du message
'Le corps du message est divisé en X lignes :
Corps = b3
Corps = Corps & Chr(13) & Chr(10) 'Chr(13) & Chr(10) = Touche ENTER
Corps = Corps & b4
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b5
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b6
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b7
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b8
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b9
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b10
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b11
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b12
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b13
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b14
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b15
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b16
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b17
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b18
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b19
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b20
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b21
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & b22
Corps = Corps & Chr(13) & Chr(10)

MonOutlookMessage.body = Corps
MonOutlookMessage.body = Corps

MesAttachements.Add "D:\Test.xls", olByValue, 1


MonOutlookMessage.Send

Set MonOutlook = Nothing

[/cpp]


 

zeb

Modérateur
Tu vas me mettre des vbCrLf à la place de tes Chr(13) & Chr(10). Oui, je sais ça ne résoudra pas tes problèmes.

Regarde, tes lignes 19 à 62. N'est pas plus clair ?[fixed]MonOutlookMessage.body = b3 & vbCrLf & _
b4 & vbCrLf & _
b5 & vbCrLf & _
b6 & vbCrLf & _
b7 & vbCrLf & _
b8 & vbCrLf & _
b9 & vbCrLf & _
b10 & vbCrLf & _
b11 & vbCrLf & _
b12 & vbCrLf & _
b13 & vbCrLf & _
b14 & vbCrLf & _
b15 & vbCrLf & _
b16 & vbCrLf & _
b17 & vbCrLf & _
b18 & vbCrLf & _
b19 & vbCrLf & _
b20 & vbCrLf & _
b21 & vbCrLf & _
b22 & vbCrLf[/fixed]
Comme je n'ai pas Outlook, je tape un peu au hasard. Mais ...

CRLF, comme séparateur de message, ce n'est standard que sous Windows. Or la messagerie électronique a été inventée sous UNIX. Essaie avec vbLf (chr(10)) seulement, voire sans sauts de ligne du tout.
Bref, qu'est-ce que ça donne si ton corps de message ne contient que "AZERTYUIOP" et si ton attachement est à la position 5 ?
 

darkspoilt

Expert
j'ai même tenté ça par désespoir

[cpp]MaOutLookApplication.MonOutlookMessage.MesAttachements.Add "D:\Test.xls", olByValue, 1[/cpp]
 

zeb

Modérateur
Ah non.
MaOutLookApplication, MonOutlookMessage et MesAttachements sont des variables. Et MonOutlookMessage et MesAttachements ne sont pas des méthodes ou des propriétés.

Par contre, [fixed]MonOutlookMessage.Attachments.Add "fichier", , 1[/fixed]est légitime.


EDIT: :(
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 124
Messages
6 717 732
Membres
1 586 356
Dernier membre
TommyStam
Partager cette page
Haut