altefqhatre
XLDnaute Junior
Bonjour bonjour
J'ai un souci avec une macro me permettant d'envoyer un mail automatique lors de la modification d'une cellule en particulier. Mon client mail est Lotus Notes.
Voilà le code présent dans la "Feuil1":
Ensuite la procédure "Envoi" que j'ai placée dans un module du classeur:
Ce code fonctionnait très bien lorsqu'il était attribué à une userform avec un bouton "Envoi". En revanche, dans ce nouveau contexte j'ai une erreur de compilation qui me dis que:
Variable non définie...
Est-ce que quelqu'un aurait une idée svp?
je suis un peu perdu là lol!
Merci beaucoup!
a++ bonne journée!
J'ai un souci avec une macro me permettant d'envoyer un mail automatique lors de la modification d'une cellule en particulier. Mon client mail est Lotus Notes.
Voilà le code présent dans la "Feuil1":
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C3")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Call Envoi
End If
End Sub
Ensuite la procédure "Envoi" que j'ai placée dans un module du classeur:
Code:
Sub Envoi()
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 Session As Object 'La session Notes
Dim EmbedObj As Object 'L'objet incorporé
Dim Saveit As Boolean 'Activer l'enregistrement ou non du message
'Crée une session notes
Set Session = CreateObject("Notes.NotesSession")
'*** Cette ligne est réservée aux versions 5.x et supérieur : ***
Saveit = True
'Session.Initialize (Password)
'Récupère le nom d'utilisateur et crée le nom de la base des mails
'UserName = structures
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Recipient = "test@test.com"
Subject = "Test envoi!"
BodyText = "Ceci est un test d'envoi automatique lors de la modification d'une cellule X"
'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.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SaveMessageOnSend = Saveit
'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 If
End Sub
Ce code fonctionnait très bien lorsqu'il était attribué à une userform avec un bouton "Envoi". En revanche, dans ce nouveau contexte j'ai une erreur de compilation qui me dis que:
Code:
Recipient = "test@test.com"
Variable non définie...
Est-ce que quelqu'un aurait une idée svp?
je suis un peu perdu là lol!
Merci beaucoup!
a++ bonne journée!