Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

rafifi

XLDnaute Nouveau
Bonjour àtoues/toutes !

Après pas mal de recherches sur ce forum et d'aide de collègues j'ai réussi à faire quelque chose de pas trop mal. Jusqu'au jour d'aujourd'hui où je bloque... :D Mais je ne m'avoue pas vaincu et sollicite vos talents... :)

Voici ce que je souhaite faire:

Situation de départ:


1/Un dossier sur mon disque dur contient un grand nombre de fichiers excels. Ils sont nommés de cette facon:
Plan_information_Nom Prenom_as_manager_21.09.11.xlsx

Nom Prenom sont les noms et prenoms des personnes que j'appelle par la suite "managers"

2/Dans un tableau excel j'ai en colonne A tous ces noms prenoms de managerset en colonne B toutes les nom prenoms de leurs secrétaires.

3/Je travaille avec Lotus Notes 8.5.2 et Excel 2007.


Objectifs:
Le but est de créer un email pour chaque fichier, la macro doit:
a/parcourir les fichiers excels de ce folder,
b/trouver les nom prénom dans les noms de fichiers,
c/chercher la secrétaire correspondante dans mon tableau excel
d/ créer+envoyer un mail avec:
en destinataire: le manager (simplement copié/collé le snom prenom, Lotus Notes reconnait ensuite automatiquement les emails)
en cc: la secrétaire (idem simplement copié/collé le snom prenom, Lotus Notes reconnait ensuite automatiquement les emails)
en pièce jointe: le fichier excel correspondant
en body: dans le mail.un email prédéfini

Vous l'avez compris: à un fichier donné correspond un seul manager et sa secrétaire.

J'ai déjà commencé une macro bien avancé et qui fonctionne, voir ci-dessous, mais je n'arrive pas à poursuivre le travail pour les actions manquantes à savoir:
a/parcourir les fichiers excels de ce folder,
b/trouver les nom prénom dans les noms de fichiers,
c/chercher la secrétaire correspondante dans mon tableau excel et la mettre en cc

Est-ce que vous avez une idée? Un collègue m'a parlé d'un dictionnaire de nom à remplir avec le snom sdes managers?

Voici la macro déjà faite:

'Lotus Notes: Send a workbook as attachment to a created e-mail


Option Explicit


Public Sub rte()
Dim noSession As NotesSession
Dim noDataBase As NotesDatabase
Dim noDocuments As NotesDocumentCollection
Dim noDocument As NotesDocument

Dim oAttach As Object
Dim oEmbedObject As Object

Dim sSubject As String
Dim sAttachment As String

Set noSession = New NotesSession

'Ouverture de la base mail dans Lotus Notes, demande de password eventuel
noSession.Initialize
Set noDataBase = noSession.GetDatabase("lu-app003", "LOCAL\MAil_In\LU-TaxPr.nsf")

If Not noDataBase.IsOpen Then
MsgBox "The mailbox cannot be opened.", vbCritical + vbOK, "Open fail"
Exit Sub
End If

Set noDocuments = noDataBase.AllDocuments
Set noDocument = noDocuments.GetFirstDocument()

' nom des destinataires de l'email
Dim s(1) As String

s(0) = "nom manager"
s(1) = "nom secretaire manager"

'recherche du mail existant dans Lotus Notes

While Not (noDocument Is Nothing)
If "AEC2F9CD304E8666C12578D40026A584" = Trim(noDocument.UniversalID) Then

Call noDocument.Send(False, s())


End If

Set noDocument = noDocuments.GetNextDocument(noDocument)
Wend
End Sub


Merci infiniment par avance pour vos idées, vos bouts de codes et vos suggestions !
J'ai essayé d'être clair et concis, mais si ce n'est pa sle as dites le moi!
Rafifi
 

Odesta

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Alors, pour :
a/parcourir les fichiers excels de ce folder,

VB:
chemin = "C:\blabla\bla...\"



Set fso = CreateObject("Scripting.filesystemobject")
Set dossierTravail = fso.getfolder(chemin)

'pour chaque fichier présent dans le dossier

For Each fichier In dossierTravail.Files

'TRAITEMENTS
'par exemple : ouvrir le fichier
    Workbooks.Open (fichier)
    Windows(fichier.Name).Activate

Next



b/trouver les nom prénom dans les noms de fichiers,
VB:
'TRAITEMENTS
' travaux sur la string (car le FSO nous renvoie le nom du fichier qu'il parcourt : fichier.Name
'des "left", des "right", des "mid", des "len", ect ect, le travail classique d'une chaine


c/chercher la secrétaire correspondante dans mon tableau excel et la mettre en cc

Un "recherchev" devrait faire la première étape
Pour la deuxième étape, tout ce qu'il faut pour envoyer un mail (et une copie) ici :
Enoyer un mail sous Excel via Lotus Notes | CommentCaMarche
Ca donnerai un truc du genre :
MailDoc.Sendto = "nom manager"
MailDoc.CopyTo = "nom secretaire manager"


J'espère que la solution peux coller à votre version de Lotus, je n'ai pas le temps de proposer mieux que ce lien !

cdt
Olivier
 

rafifi

XLDnaute Nouveau
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Alors, pour :


VB:
chemin = "C:\blabla\bla...\"



Set fso = CreateObject("Scripting.filesystemobject")
Set dossierTravail = fso.getfolder(chemin)

'pour chaque fichier présent dans le dossier

For Each fichier In dossierTravail.Files

'TRAITEMENTS
'par exemple : ouvrir le fichier
    Workbooks.Open (fichier)
    Windows(fichier.Name).Activate

Next




VB:
'TRAITEMENTS
' travaux sur la string (car le FSO nous renvoie le nom du fichier qu'il parcourt : fichier.Name
'des "left", des "right", des "mid", des "len", ect ect, le travail classique d'une chaine




Un "recherchev" devrait faire la première étape
Pour la deuxième étape, tout ce qu'il faut pour envoyer un mail (et une copie) ici :
Enoyer un mail sous Excel via Lotus Notes | CommentCaMarche
Ca donnerai un truc du genre :
MailDoc.Sendto = "nom manager"
MailDoc.CopyTo = "nom secretaire manager"


J'espère que la solution peux coller à votre version de Lotus, je n'ai pas le temps de proposer mieux que ce lien !

cdt
Olivier

Bonsoir,

Merci beaucoup pour la réponse et les idées: en effet j'ai bien compris la logique et c'est exactement ce qu'il me faut. Malheureusement je ne suis pas assez calé en code vba pour pouvoir l'écrire avec vos indications ! Si qulqu'un s'enneuie un peu dans les parages... :)

Je vais essayer néanmoins!
Bonne nsoirée
 

Odesta

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Ok, en prennant les problèmes un par un.

La partie fichier : avez vous essayer de la mettre en place.

Un premier test facile, c'est de mettre en traitement un compteur type cmpt = cmpt + 1 et de mettre un msgbox cmpt en fin de pgr pour voir si il "compte" le bon nombre de fichiers.


à vous relire
 

rafifi

XLDnaute Nouveau
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Ok, en prennant les problèmes un par un.

La partie fichier : avez vous essayer de la mettre en place.

Un premier test facile, c'est de mettre en traitement un compteur type cmpt = cmpt + 1 et de mettre un msgbox cmpt en fin de pgr pour voir si il "compte" le bon nombre de fichiers.


à vous relire

La partie ouverture de fichier fonctionne:
chemin = "C:\blabla\bla...\"



Set fso = CreateObject("Scripting.filesystemobject")
Set dossierTravail = fso.getfolder(chemin)

'pour chaque fichier présent dans le dossier

For Each fichier In dossierTravail.Files

'TRAITEMENTS
'par exemple : ouvrir le fichier
Workbooks.Open (fichier)
Windows(fichier.Name).Activate

Next




mais je suis incapable d'écrire le code que vous dites (cmpt, comme je le disais plus haut je ne suis pas assez calé pour cela!

au plaisir de vous lire
 

Odesta

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Ok.
Alors nouvelle macro : dedans on y met :

Code:
sub compter_fichiers()
chemin = "C:\blabla\bla...\" 'mettre le "bon" chemin !!!



Set fso = CreateObject("Scripting.filesystemobject")
Set dossierTravail = fso.getfolder(chemin)

'pour chaque fichier présent dans le dossier

For Each fichier In dossierTravail.Files

'TRAITEMENTS
cmpt = cmpt + 1
Next

msgbox cmpt
end sub

Il vous renvoye quoi ?
 

Odesta

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Bonjour,

On vients donc de faire "a/parcourir les fichiers excels de ce folder,"
C'est à dire que l'on a une fonction qui va prendre et permettre de manipuler tous les fichiers du dossier.

Pour récupérer le nom du destinataire, nous allons mainupler la chaine de caractère du nom du fichier
"Plan_information_Nom Prenom_as_manager_21.09.11.xlsx"

Donc, dans 'TRAITEMENTS :
Code:
Nom_Prenom = Mid(fichier.Name,18,len(fichier.Name)-25)
msgbox Nom_Prenom
end 'pour tester qu'une fois, nous supprimer cette procédure ultériement

Que renvoie la macro ? (il faudra peut etre ajuster les longeurs 18 et 25)
 

TempusFugit

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Bonjour

La même chose avec Split
(que personnellement j'utiliserai ici)
Code:
Dim chaine As String, NOMPRENOM As String
chaine = "Plan_information_Nom Prenom_as_manager_21.09.11.xlsx"
NOMPRENOM = Split(chaine, "_")(2)
MsgBox NOMPRENOM
 

TempusFugit

XLDnaute Impliqué
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Bonjour de nouveau


Ni mieux, ni pire.

Juste une question de préférence personnelle.

Mais comme il est de coutume de dire : les goûts et les couleurs...

Pour les autres points de la question, attendons les commentaires de rafifi (qui semble avoir disparu)
 
Dernière édition:

rafifi

XLDnaute Nouveau
Re : Envoi d'un mail+fichier joint à 2 destinataires par Lotus Notes

Bonjour
Merci pour vos réponses. Non je n'ai pas disparu mais je n'ai pas la meme configuration à la maison qu'au travail pour ce qui concerne excel, je suis en train d'essayer de rétablir la situation.

Je vous tiens au courant rapidement d ela suite de la macro

merci
Rafifi
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine