Besoin d'aide pour code VBA dans Word

doudouninie Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 mai 2008 - 14 mai 2008 à 15:27
doudouninie Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 mai 2008 - 14 mai 2008 à 21:08
Bonjour,
J'ai créé un formulaire word protégé avec un lien hypertexte vers une adresse mail.
et j'aimerais qu'en cliquant sur ce lien un nouveau message s'ouvre avec comme piece jointe le fameux formulaire.
Voila le code que j'ai inséré dans VBA :
Sub FollowLink()
Selection.Hyperlinks(1).Follow

Dim ol As Object, myItem As Object
Set ol = CreateObject("lotusnotes.application")

Set myItem = ol.CreateItem(olMailItem)

myItem.To = "supportliaisons@XXX.com"
myItem.Subject = "Formulaire"
Set myAttachments = myItem.Attachments
myAttachments.Add ActiveDocument.FullName

myItem.Send

Set ol = Nothing

End Sub

Et voila le message d'erreur que j'obtiens : http://www.hebergementimages.com/images/1210770327_erreurvba.JPG

Je tiens juste à vous dire que je n'y connais absolument rien en visual basic et que ce code je l'ai trouvé sur le net mais je comprend pas.

Merci de m'aider car c'est pour mon boulot et c'est assez urgent

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
14 mai 2008 à 16:19
Salut,

c'est une référence vers lotus qui est manquante (ou peut-être le serveur Domino).

Regarde ce snippet, adapte le cela devrait fonctionner :

Public Sub SendNotesMail(ByVal Subject As String, ByVal Attachment As String,
_
                         ByVal Recipient As String, ByVal ccRecipient As String, _
                         ByVal bccRecipient As String, ByVal BodyText As String,
_
                         ByVal SaveIt As Boolean, ByVal Password As String)
                         
    Dim Maildb      As Object       'La base des
mails
    Dim UserName    As String       'Le nom
d'utilisateur
    Dim MailDbName  As String       'Le nom de la base des
mails
    Dim MailDoc     As Object       'Le
mail
    Dim AttachME    As Object       'L'objet pièce jointe
en RTF
    Dim Session     As Object       'La session
Notes
    Dim EmbedObj    As Object       'L'objet
incorporé
   
    'Crée une
session  notes
    Set Session = CreateObject("Notes.NotesSession")
   
    '*** Cette ligne
est  réservée aux versions 5.x et supérieur : ***
   ''  Session.Initialize (Password)
   
    'Récupère  le nom d'utilisateur et crée le nom de la base des
mails
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1,
UserName, " "))) & ".nsf"
   
    'Ouvre la base des mails
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Not Maildb.IsOpen Then Maildb.OPENMAIL
       
    'Paramètre le mail à envoyer
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.CopyTo = ccRecipient
    MailDoc.BlindCopyTo = bccRecipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt
   
    'Prend en compte les pièces jointes
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If
   
    'Envoie
le  mail
    MailDoc.PostedDate = Now()
    MailDoc.SEND 0, Recipient
   
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
End Sub
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
doudouninie Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 mai 2008
14 mai 2008 à 17:13
ca ne marche pas
en fait j'ai recopié ton bêtement le code mais je n'y comprend rien alors je suis pas capable de l'ajuster.
là en fait il est pret à envoyer le message mais il n'y a pas de pieces jointes...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
14 mai 2008 à 17:22
SendNotesMail "Formulaire", ActiveWorkbook.Path & "" & ActiveWorkbook.FullName & ".xls",
"supportliaisons@XXX.com"

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
doudouninie Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 mai 2008
14 mai 2008 à 21:08
finalement ca marche mais si le document n'est pas enregistré avant d'être envoyé, je le recoit vierge.
il n'envoie pas le document "actif".


voici le code :


Sub FollowLink()


Dim Subject As String
Dim Attachment As String
Dim AttachmentName As String
Dim Recipient As String
Dim ccRecipient As String
Dim bccRecipient As String
Dim BodyText As String
Dim SaveIt As Boolean
Dim Password As String




Dim Maildb As Object 'La base des mails
Dim UserName As String 'Le nom d'utilisateur
Dim MailDbName As String 'Le nom de la base des mails
Dim MailDoc As Object 'Le mail
Dim AttachME As Object 'L'objet pièce jointe en RTF
Dim Session As Object 'La session Notes
Dim EmbedObj As Object 'L'objet incorporé




Subject = "formulaire"
Dim docActive As Document


Set docActive = ActiveDocument


Attachment = docActive.FullName
AttachmentName = docActive.Name

Recipient = "[mailto:supportliaisons@lacapitale.com supportliaisons@lacapitale.com]"


BodyText = "Bonjour."
SaveIt = False




'Crée une session notes
Set Session = CreateObject("Notes.NotesSession")


'*** Cette ligne est réservée aux versions 5.x et supérieur : ***
'' Session.Initialize (Password)


'Récupère le nom d'utilisateur et crée le nom de la base des mails
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"


'Ouvre la base des mails
Set Maildb = Session.GETDATABASE("", MailDbName)
If Not Maildb.IsOpen Then Maildb.OPENMAIL


'Paramètre le mail à envoyer
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = Recipient
MailDoc.CopyTo = ccRecipient
MailDoc.BlindCopyTo = bccRecipient
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt


'Prend en compte les pièces jointes
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
MailDoc.CREATERICHTEXTITEM ("AttachmentName")
End If


'Envoie le mail
MailDoc.PostedDate = Now()
MailDoc.SEND 0, Recipient


Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub


Merci encore
0
Rejoignez-nous