Bonjour,
J'ai mis en place une VBA qui me permet d'écrire un message dans Lotus Notes. Par contre quand le texte s'insère il se met après ma signature électronique ... savez vous comment je peux faire pour inscrire ce texte au dessus ?
cdt,
Bonjour,
J'ai mis en place une VBA qui me permet d'écrire un message dans Lotus Notes. Par contre quand le texte s'insère il se met après ma signature électronique ... savez vous comment je peux faire pour inscrire ce texte au dessus ?
cdt,
Bonjour,
Inspire toi de cette solution pour l'intégrer dans ton VBA :
http://www-10.lotus.com/ldd/ddwiki.n...sRichTextItem_
Bonsoir,
C'est vraiment gentil d'avoir pris la peine de faire des recherches et je vous en remercie. j'ai réussi à trouver un code qui me permet de supprimer la signature pour les mails de la macro et ça me va bien.
Par contre sauriez vous comment je peux adapter mon code pour qu'il s'applique à toutes les feuilles à partir de la troisième ?
Bien cordialement
Pourrais-tu nous montrer ton code, et nous indiquer ce que tu veux exactement.
Je pensais avoir trouvé la solution, mais à chaque fois j'ai une erreur d'éxécution. c'est à dire le mail part mais à chaque changement de feuille il y a le bug :
Erreur d'éxécution'-28363 (ffff9135)' : unable to find Document Window
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Sub Mail() Dim NSession As Object Dim NUIWorkspace As Object Dim NMailDb As Object Dim NUIDocument As Object Dim bodytext As String Set NSession = CreateObject("Notes.NotesSession") 'OLE (late binding only) because we access Notes UI classes Set NUIWorkspace = CreateObject("Notes.NotesUIWorkspace") Set NMailDb = NSession.GETDATABASE("", "") NMailDb.OPENMAIL For Each ws In Worksheets If ws.Name <> "Dispatch portefeuille Chamb" Then 'Compose the email document For Lig = 2 To ws.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row If ws.Range("AF" & Lig) = "" And Now - 30 > Range("B" & Lig) And Range("K" & Lig) <> "Gagnée" And Range("K" & Lig) <> "Perdue" And Range("K" & Lig) <> "Abandonnée" Then Set NUIDocument = NUIWorkspace.ComposeDocument(NMailDb.Server, NMailDb.filePath, "Memo") 'Set NUIDocument = NUIWorkspace.ComposeDocument(, , "Memo") 'use local computer and current database With NUIDocument .Fieldsettext "EnterSendTo", ws.Range("N" & Lig).Text .Fieldsettext "EnterCopyTo", "Christian@nsp.Fr, " & "antoine.p@nsp.fr, " & ws.Range("C" & Lig).Text .Fieldsettext "Subject", "Relance opportunité " & ws.Range("D" & Lig).Text bodytext = "Bonjour, " & vbCrLf & vbCrLf & "L'opportunité " & ws.Range("D" & Lig).Text & " est toujours au statut " & ws.Range("K" & Lig).Text & ", peux tu me dire si elle a été traitée ou si tu es en attente d'une réponse du client ? " & vbCrLf & vbCrLf & "Merci d'avance" & vbCrLf & vbCrLf & "Je reste à ta disposition pour de plus amples informations." & vbCrLf & vbCrLf & "Bien Cordialement," & vbCrLf & vbCrLf & "Antoine" & vbCrLf & vbCrLf & " Cet e-mail est généré automatiquement car la date de l'opportunité a dépassé 30 jours." & vbCrLf & vbCrLf .Fieldsettext "Body", bodytext 'Set NotesDocument options to save and send the email without prompts when the Close method is called .Document.SaveOptions = "1" .Document.MailOptions = "1" ws.Range("AF" & Lig) = Date .Close End With Set NUIDocument = Nothing End If Next Lig End If Next End Sub
J'ai testé ton code il fonctionne parfaitement.
J'ai modifié ton code pour démarrer le traitement à la feuille 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Sub Mail() Dim NSession As Object Dim NUIWorkspace As Object Dim NMailDb As Object Dim NUIDocument As Object Dim bodytext As String Dim i As Integer i=1 Set NSession = CreateObject("Notes.NotesSession") 'OLE (late binding only) because we access Notes UI classes Set NUIWorkspace = CreateObject("Notes.NotesUIWorkspace") Set NMailDb = NSession.GETDATABASE("", "") NMailDb.OPENMAIL For Each ws In Worksheets ' Traitement à partir de la feuille 3 If i>=3 Then If ws.Name <> "Dispatch portefeuille Chamb" Then 'Compose the email document For Lig = 2 To ws.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row If ws.Range("AF" & Lig) = "" And Now - 30 > Range("B" & Lig) And Range("K" & Lig) <> "Gagnée" And Range("K" & Lig) <> "Perdue" And Range("K" & Lig) <> "Abandonnée" Then Set NUIDocument = NUIWorkspace.ComposeDocument(NMailDb.Server, NMailDb.filePath, "Memo") 'Set NUIDocument = NUIWorkspace.ComposeDocument(, , "Memo") 'use local computer and current database With NUIDocument .Fieldsettext "EnterSendTo", ws.Range("N" & Lig).Text .Fieldsettext "EnterCopyTo", "Christian@nsp.Fr, " & "antoine.p@nsp.fr, " & ws.Range("C" & Lig).Text .Fieldsettext "Subject", "Relance opportunité " & ws.Range("D" & Lig).Text bodytext = "Bonjour, " & vbCrLf & vbCrLf & "L'opportunité " & ws.Range("D" & Lig).Text & " est toujours au statut " & ws.Range("K" & Lig).Text & ", peux tu me dire si elle a été traitée ou si tu es en attente d'une réponse du client ? " & vbCrLf & vbCrLf & "Merci d'avance" & vbCrLf & vbCrLf & "Je reste à ta disposition pour de plus amples informations." & vbCrLf & vbCrLf & "Bien Cordialement," & vbCrLf & vbCrLf & "Antoine" & vbCrLf & vbCrLf & " Cet e-mail est généré automatiquement car la date de l'opportunité a dépassé 30 jours." & vbCrLf & vbCrLf .Fieldsettext "Body", bodytext 'Set NotesDocument options to save and send the email without prompts when the Close method is called .Document.SaveOptions = "1" .Document.MailOptions = "1" ws.Range("AF" & Lig) = Date .Close End With Set NUIDocument = Nothing End If Next Lig End If i=i+1 Next End Sub
J'ai de nouveau un problème avec ce code :
Il ne tiens pas compte de "If ws.Range("AF" & Lig) = "" And Now - 30 > Range("B" & Lig) And Range("K" & Lig) <> "Gagnée" And Range("K" & Lig) <> "Perdue" And Range("K" & Lig) <> "Abandonnée" Then"
si je met cette ligne "If i>=3 Then"
est ce que je dois laisser celle la ? : "If ws.Name <> "Dispatch portefeuille Chamb" Then"
Qu'entends-tu par :
Le test ne se fait pas correctement ? Il devrait entrer dans le IF, et il n'entre pas ? .... ?Il ne tiens pas compte de "If ws.Range("AF" & Lig) = "" And Now - 30 > Range("B" & Lig) And Range("K" & Lig) <> "Gagnée" And Range("K" & Lig) <>
"Perdue" And Range("K" & Lig) <> "Abandonnée" Then"
ça dépend si tu veux en plus ne pas traiter la feuille nommée "Dispatch portefeuille Chamb", à moins que cette feuille soit en position 1 ou 2, dans ce cas tu peux retirer le testsi je met cette ligne "If i>=3 Then"
est ce que je dois laisser celle la ? : "If ws.Name <> "Dispatch portefeuille Chamb" Then"If ws.Name <> "Dispatch portefeuille Chamb" Then
peux-tu joindre le fichier Excel pour voir d'où vient le problème
Re-bonjour,
vous trouverez en pièce jointe un specimen du classeur original.
le débogage me met cette phrase en jaune : Set NUIDocument = NUIWorkspace.ComposeDocument(NMailDb.Server, NMailDb.filePath, "Memo")
Après plusieurs test, le code fonctionne bien lorsque j'ai une page, par contre quand je commence à en avoir deux cela me met le code erreur (image jointe)
Je pense que c'est du a la rapidité de la macro et que lotus ne suit pas ... est-il possible que la macro fasse une boucle avant de lancer le mail suivant ?
Deuxième hypothèse : Le changement de page ne lui convient pas !
Fichier : Test.xls
capture d'écran
je regarde
je reviens vers toi
j'ai testé ta macro, elle fonctionne parfaitement jusqu'au bout sans erreur
pour mettre une pause :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Wait Time + TimeSerial(0, 0, 5) 'met la macro en pause 5 secondes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 For Lig = 2 To ws.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row If ws.Range("AF" & Lig) = "" And Now - 30 > ws.Range("B" & Lig) And ws.Range("K" & Lig) <> "Gagnée" And ws.Range("K" & Lig) <> "Perdue" And ws.Range("K" & Lig) <> "Abandonnée" Then Set NUIDocument = NUIWorkspace.ComposeDocument(NMailDb.Server, NMailDb.filePath, "Memo") 'Set NUIDocument = NUIWorkspace.ComposeDocument(, , "Memo") 'use local computer and current database With NUIDocument .Fieldsettext "EnterSendTo", ws.Range("N" & Lig).Text ' .Fieldsettext "EnterCopyTo", "Christian@nsp.Fr, " & "antoine.p@nsp.fr, " & ws.Range("C" & Lig).Text .Fieldsettext "EnterCopyTo", ws.Range("C" & Lig).Text .Fieldsettext "Subject", "Relance opportunité " & ws.Range("D" & Lig).Text bodytext = "Bonjour, " & vbCrLf & vbCrLf & "L'opportunité " & ws.Range("D" & Lig).Text & " est toujours au statut " & ws.Range("K" & Lig).Text & ", peux tu me dire si elle a été traitée ou si tu es en attente d'une réponse du client ? " & vbCrLf & vbCrLf & "Merci d'avance" & vbCrLf & vbCrLf & "Je reste à ta disposition pour de plus amples informations." & vbCrLf & vbCrLf & "Bien Cordialement," & vbCrLf & vbCrLf & "Antoine" & vbCrLf & vbCrLf & " Cet e-mail est généré automatiquement car la date de l'opportunité a dépassé 30 jours." & vbCrLf & vbCrLf .Fieldsettext "Body", bodytext 'Set NotesDocument options to save and send the email without prompts when the Close method is called .Document.SaveOptions = "1" .Document.MailOptions = "1" ws.Range("AF" & Lig) = Date .Close End With Set NUIDocument = Nothing End If Next Lig Application.Wait Time + TimeSerial(0, 0, 5) 'met la macro en pause 5 secondes End If Next
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager