EnumFichiers et les Mails
Bonjour à tous,
J'ai un soucis sur un EnumFichier et j'aimerai votre avis. Dans ma macro, je dépose un mail dans un dossier avec d'autres documents, puis je renomme ce mail afin d'avoir une base propre et toujours rangée de la même façon. Ensuite je procède a un EnumFichier, pour insérer en pièce jointe d'un nouveau mail les fichiers déposés précédemment dans mon dossier. Et là le mail est envoyé avec l'ancien non et pas le nouveau, est-ce parce qu'il prendre en nom l'objet du mail, qui forcément correspond au nom du fichier quand on le dépose ou est-ce que j'ai oublié quelque chose dans mon code, ce qui fait qu'il mets le mail en pièce jointe avant de l'avoir renommé ?
Voici ma première étape:
MsgBox "Veuillez glisser le mail de demande de devis dans le dossier précédemment ouvert.", vbOKOnly, "Rangement de la demande de prix"
'Renommer le mail
repertoire = cheminDevis & "\0 - demande initiale\"
nomMail = Dir(repertoire & "*.msg")
If nomMail <> "" Then Name repertoire & nomMail As repertoire & "DT" & numDevis & " - Demande de devis.msg"
tbl = EnumFichiers(cheminDevis & "\0 - demande initiale")
Envoyer_Mail_Outlook tbl(), cheminDevis
Sheets("Liste DT").Activate
End Sub
Puis je pars la dessus
Function Envoyer_Mail_Outlook(tbl() As String, cheminDevis As String)
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = mail1 'Destinataire
.CC = mail2 'Copie
.Subject = 'Sujet à définir
.Body = 'Corps à défini
For k = 1 To nbFichier
Nom_Fichier = cheminDevis & "\0 - Demande initiale\" & tbl(k)
.Attachments.Add Nom_Fichier
Next k
.Display 'Ici on peut supprimer pour l'envoyer sans vérification
'.Send
End With
'ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Function
Merci d 'avance pour votre aide précieuse.
Bonsoir Heelflip
Il serait pas mal de nous donner également le code de la fonction utilisée "EnumFichiers"
A+
Bonsoir Bruno,
Oups j'ai écrit trop vite, désolé. Voici comment j'ai écrit ma fonction:
Function EnumFichiers(chemin As String) As String()
Dim TableauFichiers() As String
Dim Fichier As String
Dim i As Integer
nbFichier = 0
'complète le chemin le cas échéant
If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
'récupère les fichiers
Fichier = Dir(chemin)
'boucle sur les fichiers du dossier
Do While (Len(Fichier) > 0)
nbFichier = nbFichier + 1
ReDim Preserve TableauFichiers(1 To nbFichier)
TableauFichiers(nbFichier) = Fichier
Fichier = Dir()
Loop
'retourne le tableau des noms de fichiers
EnumFichiers = TableauFichiers()
End Function