Mail auto relances Excel

Bonjour,

Est-il possible via un code vba d'envoyer en début de chaque mois un mail de toutes les relances à effectuer ??

Ci-joint un exemple d'un fichier

Merci d'avance pour votre aide

KELLY

Bonjour,

le détail, qui doit être mit dans le corp du message, n'est pas très clair.

pourriez-vous donner un exemple plus précis, merci!

Bonsoir sabV,

Je vous joins mon fichier modifié.

Merci d'avance.

KELLY

ce n'est pas beaucoup plus clair,

comment déterminer quel sont les lignes concernées pour chacun des Relance 1, Relance 2, Relance 3 et Relance 4 ?

j'ai compris qu'il fallait mettre les données des colonnes B, C et D, mais quel lignes pour chacun des Relance 1, Relance 2, Relance 3 et Relance 4 ?

Bonsoir SabV,

Désolé ! Il est vrai que le tableau n'était pas très clair du fait qu'une seule cellule par ligne devrait apparaître en rouge.

J'ai modifié le fichier en essayant d’être plus claire....

Merci d'avance.

KELLY

Bonsoir le forum,

Quelqu'un pour m'aider

J'ai beau chercher je ne trouve rien qui correspond à ce que je recherche...

D'avance merci

Bonsoir Kelly,

pour créer la tache mensuel j'aurais besoin de connaitre l'application que vous utilisez pour votre messagerie,

aussi le jour du mois pour lancer la tache ?

Bonjour sabV

J'utilise Outlook 2010 et les mails pourraient se faire tous les 1er de chaque mois

Merci beaucoup

Bonjour Kelly,

Voici les instructions pour créer la tache planifiée, et les codes

j'ai également tous mit dans le fichier joint

attention pour ceux qui ouvriront le fichier si la date du jour est le 1er du mois

la macro "SendRangeByMail" va s'exécuter, mais c'est en .Display

'Pour exécuter le Planificateur de tâches à l'aide de l'interface Windows

'Cliquez sur le bouton Démarrer.

'Cliquez sur le Panneau de configuration.

'Cliquez sur Système et Maintenance.

'Cliquez sur Outils d'administration.

'Double-cliquez sur Planificateur de tâches.

'Démarrer le planificateur de tâches - TechN

'Tache:

'ouverture du fichier KELLY-SendRangeByMail.xlsm

'effectuer la tache tous les 1er du mois

sur la page ThisWorkbook

Private Sub Workbook_Open()
If Day(Date) = 1 Then SendRangeByMail
End Sub

sur la page Module1

Sub SendRangeByMail()
Dim rngeSend As Range
   With Application
      On Error Resume Next
      Set rngeSend = Sheets("mail").Range(Range("A1").CurrentRegion.Address)
       If rngeSend Is Nothing Then Exit Sub
      On Error GoTo 0
      .ActiveWorkbook.PublishObjects.Add(4, "C:\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True
      Call PrepareOutlookMail("C:\Temp\XLRange.htm")
        Kill "C:\Temp\XLRange.htm"
    End With
End Sub
Sub PrepareOutlookMail(sFileName)
Dim appOutlook As Outlook.Application
Dim oMail As Outlook.MailItem
   Set appOutlook = CreateObject("Outlook.Application")
   If Not (appOutlook Is Nothing) Then
      Set oMail = appOutlook.CreateItem(olMailItem)
        With oMail
         .To = "MonAdresse@Courriel"
         .Subject = "Relances à effectuer"
         .HTMLBody = ReadFile(sFileName)
         .Display
'         .Send
        End With
      Set oMail = Nothing
      Set appOutlook = Nothing
   End If
End Sub

Public Function ReadFile(sFileName) As String
Dim fso As Object, fFile As Object
Dim sTemp As String
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set fFile = fso.OpenTextFile(sFileName, 1, False)
   sTemp = fFile.ReadAll
   fFile.Close
   Set fFile = Nothing
   ReadFile = sTemp
End Function

Bonjour sabV,

Tout d'abord un grand merci pour le temps que vous consacrez .

Concernant la création de la tâche, j'espère avoir bien procédé (planificateur de taches/nouveau dossier/ général / déclencheur/actions)

Malheureusement, ça bloque sur :

.ActiveWorkbook.PublishObjects.Add(4, "C:\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True

Call PrepareOutlookMail("C:\Temp\XLRange.htm")

Ai-je oublié de faire quelque chose ?

Merci d'avance.

Bonjour Kelly,

vérifier que le focus soit bien sur une cellule et non sur un objet ou un shape avent l'exécution de la macro "SendRangeByMail"

Bonjour sabV,

Je dois avouer que je suis un peu perdue.

Je ne comprends pas ce que veut dire "vérifier que le focus soit bien sur une cellule et non sur un objet ou un shape avent l'exécution de la macro "SendRangeByMail""

Que dois-je faire exactement ?

Merci d'avance

Bonjour,

l'erreur est sur laquelle de ces commandes, et quel est le message d'erreur ?

.ActiveWorkbook.PublishObjects.Add(4, "C:\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True

ou

Call PrepareOutlookMail("C:\Temp\XLRange.htm")

Bonsoir sabV

L'erreur est sur la 1ère commande :

.ActiveWorkbook.PublishObjects.Add(4, "C:\Program Files (x86)\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True

Le message d'erreur est : "Erreur d'exécution 1004 - La méthode 'Publish' de l'objet PublishObject' a échoué"

Merci.

Bonjour Kelly,

pouvez-vous réessayé en placent cette commande

Sheets("mail").Range("A1").Select

juste avant celle-ci

      .ActiveWorkbook.PublishObjects.Add(4, "C:\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True

J'ai le même message d'erreur

Bonjour Kelly,

pouvez-vous vérifier si les références suivante sont cocher ?

excel 2010 vba reference 1

Bonjour SabV,

C'est exactement ce que je voulais !!!

Je n'avais tout simplement pas créé le fichier !

Un grand merci à vous ! Vous êtes fantastique !!

Kelly


SabV,

J'aimerai que vous m'expliquiez ce code ?

Merci

Sub DonnéesMail()

Set sh1 = Sheets("Feuil1")

Set sh2 = Sheets("mail")

For i = 1 To 4

For y = 5 To 9

' =ET($Q5<=AUJOURDHUI();OU($V5<>""))

' If and(sh1.Cells(y, 14 + i)<date, Then

sh2.Cells(1, 1) = sh1.Cells(y - 1, 14 + i)

sh2.Cells(1, 2) = sh1.Cells(y, 2)

sh2.Cells(1, 3) = sh1.Cells(y, 3)

sh2.Cells(1, 4) = sh1.Cells(y, 4)

sh2.Cells(1, 5) = sh1.Cells(y, 6)

sh2.Cells(1, 6) = sh1.Cells(y, 14 + i)

End If

Next

Next

End Sub

SabV,

J'ai encore une question car j'ai du oublié de faire quelques chose.

J'ai entré une date dans envoi relance 2 en U8, ce qui m'a enlevé une cellule rouge en P8.

J'ai programmé le planificateur de tâches.

Le fichier s'est ouvert automatiquement, il n'y a plus qu'à cliquer sur le bouton et le mail est envoyé avec .Send.

Seulement lorsque je regarde dans la feuille "Mail" la relance 3 de tutu apparaît encore alors que j'ai entré une date précédemment, il n'y a donc plus de relance à faire sur celle-ci ?

Pourquoi la feuille mail ne s'actualise pas ??

Merci d'avance

Bonjour Kelly,

oui, je n'avais pas automatisé le transfert des données en Feuil2, car je ne savais pas si vous aviez déjà solutionné cette partie, aussi si la présentation était final et aussi je n'ai pas compris la formule que vous avez utilisé pour MFC.

j'ai solutionné seulement la partie "envoie du mail"

je vous suggère de relancer un nouveau message "transfert de données de Feuil1 à Feuil2"

car il y a beaucoup de répondants ici, beaucoup plus ferré que moi pour la manipulation de tableau

Rechercher des sujets similaires à "mail auto relances"