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
 

rafifi

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

bonjour
Je suis de retour et pleinement opérationnel pour vos remarques efficaces. En effet j'ai test le bout de code suivant suite à vos indications:

Sub compter_fichiers()
chemin = "T:\bla 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



Dim chaine As String, NOMPRENOM As String
chaine = "Plan_information_Nom Prenom_as_manager_21.09.11.xlsx"
NOMPRENOM = Split(chaine, "_")(2)
MsgBox NOMPRENOM
End Sub


J'ai bien 2 mesages qui s'affichent: 201 (nb de fichiers exacts donc) et ensuite Nom Prenom. Je ne sais si ce dernier est juste ou s'il devait me renvoyer les noms prenoms de chcaucn des 201 fichiers, toujours est-il que ca fonctionne sans erreur...

Au plaisir de lire vos précieuses indications !
Rafifi
 
Dernière édition:

TempusFugit

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

Bonjour


Ce bout de code n'est qu'une exemple
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
Il faut l'adapter à ton code existant (pour récupérer le nom de chaque fichier)

En reprenant le code soumis par Odesta
Code:
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
Msgbox  Split(fichier.Name, "_")(2) ' affiche une MsgBox juste pour faire le test
 Next
 
Dernière édition:

rafifi

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

Bonjour

Ok donc en fait c'est le chiffre 3 et non 2 qu'il faut mettre. votre bout de code marche ducoup

Mais je suis perdu car, par rapport à ma macro postée dans mon message initial, je ne sai spas où mettre ce code, ni quel es tl'interet pour la suite? (avoir le nb de fichier, afficher les noms dans uen message box...?)

Merci
 

TempusFugit

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

Le code que je t'ai soumis, n'est pas une solution en soi, mais est censé permettre d'avancer.

(Ici, lesMsgBox ne servent que pour faire des tests)

Ensuite il faudra adapter pour rendre le code VBA fonctionnel pour ta question.

Les points suivant ont déjà trouvé réponse:
a/parcourir les fichiers excels de ce folder,
b/trouver les nom prénom dans les noms de fichiers

Voici le code modifié pour te permettre de récupérer les noms dans une feuille Excel
Code:
Sub test()
Dim chemin As String
Dim fichier, i, tableau()
chemin = "C:\nomdudossier" 'faire le changement ici

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

ReDim tableau(dossierTravail.Files.Count)
i = 0
For Each fichier In dossierTravail.Files
tableau(i) = Split(fichier.Name, "_")(2)
i = i + 1
Next fichier
Range("A1").Resize(UBound(tableau) + 1) = Application.Transpose(tableau)
End Sub
 
Dernière édition:

rafifi

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

ok merci pour le code.
Mais comme je le disais je n'y connais rien en écriture de code vba, donc si ce n'est pas une solution en soi comme tu dis ca ne m'avance pas assez... :)

Merci encore !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757