Envoi mail automatique

Hé bien on va séparer les problèmes et prendre des méthodes plus efficaces de développement.

Essaie ceci : tu ouvres et actives les macros !

salut steelson, bon lorsque j'ouvre ce fichier directement une fenêtre d'envoi apparaître et lorsque je clique Ok il me donne une erreur '287' sachant que les deux feuille suivi et enregistrement n'existe pas dans ce fichier voila et merci pour votre réponse

Bonjour,

IL affiche bien "Un mail va partir ..." ok

ing2017 a écrit :

les deux feuille suivi et enregistrement n'existe pas dans ce fichier

C'est normal, c'est juste un test pour savoir si tu eux envoyer un mail tout simple, sans rechercher quoi que ce soit dans d'autres feuilles ! ... et cela ne fonctionne pas, donc tu ne peux pas envoyer de mail tout simple ...

Essaie avec un autre ordinateur, avec une autre personne qui aurait outlook, à distance je ne peux pas t'aider sachant que

1- tu as outlook sur le poste sur lequel tu utilises excel (je suppose ! ?)

2- tu as vérifié la référence à Microsoft Outlook xx.x Object Library

salut

bon le solution d'aprés vous c'est de chercher une autre ordinateur ou de verfier la version outlook que j'ai utilisé ce ça

Ben oui car on bloque depuis le début sur l'envoi d'un mail !

salut il y a le nouveau steelson conçernant mon fichier et l'essaie de teste que deja tu m'envoyé

je vous presente le code et le resultat que j'ai vu maintenat

Option Explicit
Sub envoi()

    Dim messagerie As Object
    Dim email As Object

        Set messagerie = CreateObject("Outlook.Application")
        Set email = messagerie.CreateItem(0)

        With email
            .to = "mounir_kraim@contoso.com"
            .bcc = "mike.steelson@gmail.com"
            .Subject = "mettre ici le titre du mail"
            .body = "texte du mail"
            .Display
        End With

        Set email = Nothing
        Set messagerie = Nothing

End Sub

et ça c'est le resultat aprés exeuction alors qu'est ce que on doit faire par la suite

image1

Ben c'est parfait !! donc tu peux envoyer des mails.

Comment tu as fait ? qu'est-ce qui a changé ?


Maintenant tu peux ré-essayer ceci ...

https://forum.excel-pratique.com/excel/envoi-mail-automatique-t96970-30.html#p563405

avec les mêmes modifications que tu viens d efaire !

bonsoir steelson bon maintenant je vient à créer ce code aprs la nouvelle configuration de mon outlook mais il m'affiche cette erreur

erreur de compilation "variable non defini sur strbody voila le code et merci de corriger pour pouvoir agir sur le resultat correcte

Option Explicit
Sub Mail_small_Text_Outlook()
    'Working in Office 2000-2010
    Dim messagerie As Object
    Dim email As Object
    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    'on fait la boucle en imaginant que colonne D est toujours remplie
   MsgBox "procédure d'envoi"

  [color=#0000FF]  strBody = "[/color]"
    For ligne = 5 To Cells(65000, "F").End(xlUp).Row
        If Cells(ligne, "E").Value = "Attention, date dépassée!" Then
            strBody = strBody & "description : " & Cells(ligne, "F").Value & vbCrLf
        End If
    Next

    With email
        .To = "mounir_kraim@contoso.com"
        .Subject = "Avertissement sur Tâche"
        .Body = strBody
       .Display

            End With
            Set OutMail = Nothing
            Set OutApp = Nothing
        End If

    Wend
End Sub

Vire pour le moment ...

Option Explicit

bonsoir steelson le procedure d'envoi est effectué mais il m'affiche le fenetre d'envoi mail comme etant moi mem que je tapez un mail pour l'envoyer c'est à dire j'ai reçu pas le texte dans la cellule F5 automatiquement je pense que la fonction de selection les données ne fonctionne pas il y a quelque chose que cloche comme etant un test simple si tout

Sub Mail_small_Text_Outlook()
    'Working in Office 2000-2010
    Dim messagerie As Object
    Dim email As Object
    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    'on fait la boucle en imaginant que colonne D est toujours remplie
   MsgBox "procédure d'envoi"

    strBody = ""
    For ligne = 5 To Cells(65000, "F").End(xlUp).Row
        If Cells(ligne, "E").Value = "Attention, date dépassée!" Then
            strBody = strBody & "description : " & Cells(ligne, "F").Value & vbCrLf
        End If
    Next

    With email
        .To = "mounir_kraim@contoso.com"
        .Subject = "Avertissement sur Tâche"
        .Body = strBody
       .Display

            End With
            Set email = Nothing
        Set messagerie = Nothing

End Sub
ing2017 a écrit :

bonsoir steelson le procedure d'envoi est effectué mais il m'affiche le fenetre d'envoi mail

Il faut donc remplacer .display par .send

ing2017 a écrit :

envoi mail comme etant moi mem

et le mail sera envoyé à l'adresse mail que tu avais mis dans le programme VBA initialement

ing2017 a écrit :

j'ai reçu pas le texte dans la cellule F5 automatiquement je pense que la fonction de selection les données ne fonctionne pas

pas compris, éventuellement mets le texte reçu ...

bonsoir steelson seulement le contenu de la cellule F5 que j'ai reçu son contenu dans ma boite lorsque E5 contient attention date depassée or moi je vais tous les cellules de la colonne F lorsque E contient attention date depassée donc il y a quelque instruction manquante pour completer tous les autres cellules

salut steelson bon je vient à ajouter au code une instruction se fonction j'ai réçu tout les contenus pour les autres cellules mais si seulement j'execute le code à chaque fois pour m'envoyer or moi je vais lorsque j'ai change la date d'intervention au feuille d'enregistrement le macro sera exécuté automatique tu a compris maintenant c'est pas à chaque changement de date j'execute le code pour m'envoyer le mail que je vais, voila je vous attend avec ue réponse clair et qu'est ce que j'ajoute pour ça marche bien merci d'avance voila le code

Sub Mail_small_Text_Outlook()
    'Working in Office 2000-2010
    Dim messagerie As Object
    Dim email As Object
     Dim i As Integer            '--- n° de ligne
    i = 5
    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    'on fait la boucle en imaginant que colonne D est toujours remplie
   MsgBox "procédure d'envoi"

    strBody = ""
    For ligne = 5 To Cells(65000, "F").End(xlUp).Row
        If Cells(i, "E").Value = "Attention, date dépassée!" Then
            strBody = strBody & "description : " & Cells(i, "F").Value & vbCrLf
        End If
        i = i + 1
    Next

    With email
        .To = "mounir_kraim@contoso.com"
        .Subject = "Avertissement sur Tâche"
        .Body = strBody
       .Send

            End With
            Set email = Nothing
        Set messagerie = Nothing
ing2017 a écrit :

salut steelson bon je vient à ajouter au code une instruction se fonction j'ai réçu tout les contenus pour les autres cellules mais si seulement j'execute le code à chaque fois pour m'envoyer or moi je vais lorsque j'ai change la date d'intervention au feuille d'enregistrement le macro sera exécuté automatique tu a compris maintenant c'est pas à chaque changement de date j'execute le code pour m'envoyer le mail que je vais, voila je vous attend avec ue réponse clair et qu'est ce que j'ajoute pour ça marche bien merci d'avance voila le code

J'avais bien dit qu'"on en reparlerait !!

Steelson a écrit :

Hello !

ok, voici sans bouton mais on risque d'en reparler ...

Ma réponse c'est

  • soit on met le bouton pour activer le mail quand ncessaire
  • soit il faut donner la règle ... tu dis à chaque changement de la date d'intervention ? ok je vais regarder cela

salut ok je vais avec regle sans bouton et sans execution de nouveau à chaque fois merci beaucoup steelson

bonjour steelson tu peux verfier la formule que tu as crée parceque la cellule B1 ne prend "OUI" seulement si E5 contient "Attention ,mot depassée" donc l'envoi effectué seulement si E5 contient "attention date depassée" or probable que parexemple E12 seulement contient "attention date depassée" et les autres cellules non comme ça pas de procedure d'envoi et ça c'est pas bien j'ai une proposition

pourquoi tu met pas la formule sur les cellules de colonne E5 jusqu'a EXXXXX lorsque un de ces cellules contient "attention date depassée" alors le procedure d'envoi

Option Explicit

Private Sub Worksheet_Activate()
If Range("B1") = "OUI" Then Mail_small_Text_Outlook
End Sub

Sub Mail_small_Text_Outlook()
Dim strBody, ligne
Dim messagerie As Object
Dim email As Object

    MsgBox "procédure d'envoi"

    strBody = ""
    For ligne = 5 To Cells(5, "D").End(xlDown).Row
        If Cells(ligne, "E").Value = "Attention, date dépassée!" Then
            strBody = strBody & "description : " & Cells(ligne, "F").Value & vbCrLf
        End If
    Next

    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    With email
        .To = "mounir_kraim@hotmail.com"
        .Subject = "Avertissement sur Tâche"
        .body = strBody
        .send
    End With
    Set email = Nothing
    Set messagerie = Nothing

    Range("B1") = "NON"

End Sub
Sub okdiffusion()
Sheets("Feuille de suivi").Range("B1") = "OUI"
End Sub
ing2017 a écrit :

la cellule B1 ne prend "OUI" seulement si E5 contient "Attention ,mot depassée"

Non non non non .... la cellule B1 devient OUI quand une date change dans la feuille d'enregistrement

ing2017 a écrit :

or moi je vais lorsque j'ai change la date d'intervention au feuille d'enregistrement le macro sera exécuté automatique

Quand une date change, je fais ceci :

Sub okdiffusion()
Sheets("Feuille de suivi").Range("B1") = "OUI"
End Sub

Cela permet de savoir quand envoyer un mail.

Donc après une modif de date, lorsque tu reviens sur la Feuille de suivi, un mail part en automatique (tu ne voulais pas de bouton).

Dès qu'il est parti, B1 redevient "NON" pour éviter d'envoyer des mails à tout bout de champs !

Hello Mounir !

Pas de nouvelles = bonnes nouvelles ?

salut steelson je suis désolé pour le retard bon merci pour votre essaie mais je vais expliquer un peu le changement de date juste pour tester l'apparition d'avertissement "attention date depasséé" dans la colonne E je vais pas chaque changement de date intervention le procédure d'envoi effectué bon je vous conseillé d'oublier la feuille d'enregistrement complètement je vais que la condition d'envoi sera lié seulement par l'apparition d’avertissement " attention ,date dépassée " seulement donc chaque fois "attention date dépassée " apparaître dans les cellules de la colonne Exxxxx donc le procédure d'envoi sera présent normalement tu a bien compris maintenant merci de m'envoyer une solution

Rechercher des sujets similaires à "envoi mail automatique"