Mail automatique, nom variable

Bonjour à vous tous,

Je présente mon problème :

Je suis en cours de création d'un fichier prélevant des informations à partir d'automates. Je reçoit les données sur mon fichier à la fin de la journée. Lors de la création du fichier Excel je le nomme de la façon suivante "Rapport_JJ.MM.AAAA".

Donc, ce fichier change tous les jours de nom. Je souhaiterai l'envoyer à différente personne dans l'usine par mail.

J'ai essayé plusieurs façon, macro, VB, créer un autre fichier Excel qui s'occupe d'envoyer le fichier "Rapport_JJ.MM.AAAA", mais le faite que le nom varie, me bloque tous le processus.

Je serais ravis d'avoir votre aide pour ainsi m'aider à avancer et à continuer.

Cordialement, sylvaincc.

Excel 2003

Bonjour,

Pour te faire une proposition adaptée, je souhaiterais savoir quelle méthode tu utilises (avec succès) pour envoyer un mail avec un nom fixe (Outlook.Application, CDO.Message, instruction ActiveWorkBook.SendMail, autre...) et avec quel code VBA.

Cordialement,

Lazade

Bonjour,

merci,

La méthode que j'utilise et qui marche pour un nom fixe, est avec SendMail, la voici :

Sub message()
  Workbooks("Rapport_24.05.2011").SendMail Recipients:="desti@adress.com", _
                          Subject:="Test envoi classeur", _
                          ReturnReceipt:=True
End Sub

Cordialement sylvaincc

Bonjour,

Deux choses essentielles sont à connaitre :

  • Où sont stockées tes adresses mail
  • Quel est le client de messagerie ?

Vois aussi ce lien avec différentes solutions --> https://forum.excel-pratique.com/excel/insertion-automatique-d-adresses-electroniques-t16935.html

Amicalement

Bonjour le fil,

Je pense que son problème ne se situe pas au niveau de l'envoi mais plutôt du fait que le nom du fichier change tous les jours d'après ce qu'il écrit.

Pour récupérer le nom du fichier, ajoute au début de ton code :

Dim dtehier As String
Dim NomFichier as String

dtehier = Format(Date - 1, "dd mm yyyy")
dtehier = Replace(dtehier, " ", ".")

NomFichier = "Rapport_" & dtehier

Et voila, tu as ton nom de fichier que tu peux exploiter pour ton envoi. par contre je n'ai pas pu tester lors d'un changement de mois (exemple bientôt mercredi 1er juin, si il te mettra bien le 31.05.2011 pour la veille mais normalement oui).

Cordialement.

Bonjour,

Je suis confus. J'ai passé la journée à essayer en vain de faire fonctionner la méthode SendMail. Seul le code CDO donne des résultats.

Néanmoins, tu pourrais essayer le code suivant, pour voir si le passage d'argument fonctionne, après avoir créé un classeur Essai.xls laissé ouvert :

Option Explicit

Sub Main()

Dim NomClasseur As String

NomClasseur = "Essai.xls"

Call EnvoiMail(NomClasseur)

End Sub

Sub EnvoiMail(Classeur As String)

Workbooks(Classeur).SendMail Recipients:="desti@adress.com", _

Subject:="Test envoi classeur", _

ReturnReceipt:=True

End Sub

Si cela marche, j'ai le code pour renommer automatiquement "Rapport_jj.mm.aa.xls" le classeur courant à partir de la date du jour.

A+,

Lazade

Bonjour,

J'ai essayé vos sulutions, vraiment merci.

Le soucis qu'il se présente maintenant, c'est que mon fichier et ma macro s'éxécute mais... rien ne se passe !

J'ai demandé à mon automate de créer un fichier avec un nom variable et d'envoyer ce fichier. Tout s'effectue correctement jusqu'au YesClick mais je n'ai pas de mail.

Sub mail()
ActiveWorkbook.SendMail Recipients:="desti@adress.com", _
                          Subject:="Suivi de ligne", _
                          ReturnReceipt:=True
End Sub

Avec ce code, il semblerais que ça devrait marché, en théorie, mais non, pas de mail.

Problème de parametrage ?

J'ai pensé aussi, à avoir un fichier Excel, "Rapport" créé par l'automate, nom fixe. D'avoir une macro qui le renome et me l'envoie.

Mon fichier "Rapport" devrait s'éxécuter avec le code suivant :

Sub changNom()
Dim D As String
D = Day(Now) & Month(Now) & Year(Now)
If Dir("C:\Documents and Settings\nom\Bureau\Rapport.xls", vbNormal) <> "" Then
Workbooks("Rapport.xls").SaveAs Filename:="C:\Documents and Settings\nom\Bureau\" & D & ".xls"
End If

ActiveWorkbook.SendMail Recipients:="desti@adress.com", _
                          Subject:="Suivi de ligne", _
                          ReturnReceipt:=True
End Sub

Mais le soucis est ici comme dessus, pas de mail, logique, certes, le fichier à changé de nom en cours de route...

Je vais tester dès maintenant lazade.

Merci, sylvaincc

Re,

Si tu répondais aux questions posées ce serait plus facile de voir le code approprié.

A bientôt

Rechercher des sujets similaires à "mail automatique nom variable"