Envoie automatique d'un mail

bonjour a tous,
je reviens vous voir pour un « petit » truc que je cherche a faire, j’ai crée un fichier de suivit de commande de pains avec mon voisin, dans ce cadre mon voisin me laisse géré les données mais je souhaiterai qu’il soit informé automatiquement par mail ou sms si c’est possible, quand le montant de sa cagnotte a lui vas arriver a une somme plancher afin qu’il pense a crédité en ligne la cagnotte sur le site du fournisseur
merci d’avance si c’est possible
Pains.xlsx (97,2 Ko)

Bonjour,
Par SMS, je ne dis pas que c’est impossible, mais l’usine à gaz est très complexe
Par Email, oui, mais à savoir par quel messagerie, Outlook?

hello
si c’est possible par Gmail je préfèrerais …quoi que il me semble que la messagerie en natif de Windows 10, Outlook il me semble, peut être configurer pour l’envoie même avec une adresse Gmail, donc a voir
en fait j’ai juste besoin que sur l’onglet « soldes » la case « Kuntzner » envoie le mail quand la valeur arrive a un solde de zero ou en negatif

PS les pages du fichier sont juste en protection sans mot de passe, c’est juste plus simple pour le remplissage des cellules sans risquer que le voisin touche a mes formules et les modifierais, même sans le vouloir

Re,
C’est juste un mail d’avertissement, ou il faut y intégrer le classeur ou un onglet

Re, c’est juste un mail pour le prévenir que sa part de la cagnotte est a 0€, c’est tout, comme on alimente tout les deux la même cagnotte en ligne, et qu’ont commande en ligne en avance et que c’est moi qui fais la mise a jour du fichier que je partage avec lui via one drive, il ne vois pas forcément le niveau de sa part en ligne

Bonjour,
A tester
Si la cagnotte du voisin est à 0 ou en-dessous de 0, le mail s’envoi sur simple activation de la feuille Solde.
la cellule D14 de la feuille Solde affiche 1, afin de ne pas envoyer le mail à chaque activation
dés que le montant du solde sera augmenté et avec l’activation de la feuille Solde, la cellule D14 de la feuille Solde affiche rien.

Dans le Module, il suffit juste de placer les deux adresses Mail, la tienne et celle du voisin, et de modifier le texte à ta convenance
Pains.xlsm (98,9 Ko)

Salut,
Nikel ça fonctionne super
merci encore
@+

Salut Mimimathy,
j’ai essayer en me basant sur ton code vba, de recrée un envoie de mail de récapitulatif de commande du jour d’après une valeur dans la colonne B (nom du voisin) si la colonne A tombe sur aujourd’hui, mais je suppose, enfin je suis sur que je dois faire un truc pas bon
merci d’avance si tu pouvais y jeter un œil
si c’est possible que l’envoie du mail puisse se faire automatiquement sans que j’ai a ouvrir le fichier
Pains.xlsm (107,4 Ko)

Bonjour,
A tester
à l’ouverture de la feuille « Commandes » la macro se place sur la date du jour et le nom du voisin, si les deux existes et recherche les cellules contenant des valeurs en les plaçant dans une variable temporaire et envoi le message
Après, si tu trouves le moyen d’envoyer un mail sans ouvrir de fichier avec les données demandées, je suis preneur. C’est comme si tu voulais rentrer chez toi sans ouvrir la porte :rofl:

Pains (2).xlsm (108,6 Ko)

Merci nickel ça fonctionne vue que je viens de recevoir mon premier recap de commande.

Pour l’ouverture automatisé, en fait c’est cela que je voulais dire, il est possible de le faire via un script ou une routine dans Windows, mais faut aussi l’écrire ce script, ou alors via « SharePoint » ou « power automate » qui sont compris dans office 365 mai sil faut un compte premium pour cela…

en tout les cas merci beaucoup du coup de pouce
@+

Bon retour case départ, j’avais bien reçut le recap quand tu as crée le script, mais maintenant quand je mets mon adresse mail ça me mets une erreur (j’ai juste remplacer par des *** le debut de l’adresse mail)

Capture

Re,
Vérifie que tu places les bonnes adresses mail (expéditeur & destinataire) sans espace
(base toi sur l’autre macro pour l’envoi sur solde négatif)
et vérifie que la référence Microsoft Outlok xx.x Object Library soit coché depuis Outils --> Référence

la référence Outlook est bien coché, et j’ai effacer les adresse mail réécris sans espace, j’ai même fais un copié coller a partir de l’autre macro mais ça veut pas si tu est d’accord je te mets en partage sur mon fichier original via OneDrive
je t’ai envoyé le lien de partage

Re,
Pour tester toi même, place ton adresse en tant que expediteur et destinataire

c bon la ça fonctionne, je ne comprends pas ce qui s’est passé !

bon en théorie j’ai même put planifier l’ouverture du fichier a heure fixe avec le planificateur de Windows,
je verrais demain si ça fonctionne
@+

Bon ça fonctionne, j’ai réussi dans un premier temps que le fichier s’ouvre automatiquement, mais l’inconvénient était que ça n’envoyais le mail que si je cliquait sur l’onglet commandes…par la suite après quelques recherche j’ai réussi a modifier ton code (Worksheet_Activate, par Workbook_Open) pour que le mail s’envoi a l’ouverture du fichier
donc résultat mon fichier s’ouvre a heure fixe tout les jours et si les conditions d’expédition du mail son remplies le mail s’envoi sans intervention de ma part
merci encore du coup de main !

Salut Mimimathy, j’ai une question,
je souhaiterais envoyé un onglet de mon classeur (l’onglet solde) en automatique si possible en PDF lorsque la macro envoie mail qui est mise en place pour le solde négatif de cette même feuille, j’ai bien put rajouter et modifier certaine macro, mais la je ne trouve rien et les différentes vidéo que j’ai put voir sur YouTube ne résolve pas ma problématique, j’ai bien compris qu’il faut déclarer des variables, mais je ne trouve pas la syntaxe correct
si tu pouvais a l’occasion y jeter un œil et m’orienter (tu me l’avais même proposé au début…)
merci d’avance

Pains_teste.xlsm (108,5 Ko)

Bonjour,
Teste avec ces deux macros

Option Explicit

Sub envoiMail()
  Dim Contenu$
  Dim MaMessagerie As Object
  Dim MonMessage As Object
  Dim Fichier As Variant
  Set MaMessagerie = CreateObject("Outlook.Application")
  Set MonMessage = MaMessagerie.CreateItem(0)
  
  Sheets("Solde").Activate
  PDF
  Fichier = ThisWorkbook.Path & "\" & "Solde du " & Format(Date, "yyyy_mm_dd_") & ".pdf" ' A modifier selon l'emplacement du dossier
  MonMessage.SentOnBehalfOfName = "taz067@gmail.com" '********* TON ADRESSE **************
  MonMessage.To = "taz067@gmail.com"     '*******ADRESSE MAIL PRINCIPAL********
  MonMessage.BCC = "taz067@gmail.com" '****ADRESSE MAIL COPIE CARBONE INVISIBLE*****
  MonMessage.Subject = "Montant de ta cagnotte PAIN" '********* OBJET MAIL **************
  MonMessage.Attachments.Add Fichier
          '********* TEXTE MAIL **************
          Contenu = "Salut Dany,"
          Contenu = Contenu & Chr(10) & Chr(13)
          Contenu = Contenu & "Le montant de ta cagnotte est arrivé à zéro."
          Contenu = Contenu & Chr(10) & Chr(13)
         ' Contenu = Contenu & "Pense à la créditer en ligne sur le site de baguette box."
         ' Contenu = Contenu & Chr(10) & Chr(13) bon la j'ai bien compris que c'est pour le premier un retour a la ligne et le deuxieme un retour chariot
          Contenu = Contenu & "Christian"
  MonMessage.body = Contenu
  MonMessage.Send
  Set MaMessagerie = Nothing
  MsgBox "Le Mail a bien été envoyé" '********* MESSAGE DE CONFIRMATION D'ENVOI MAIL **************
End Sub

Sub PDF()
Dim LaDate$, Nom$, Rep$  'Déclaration des variables
LaDate = Format(Date, "yyyy_mm_dd_") 'formatage de la date
Nom = "Solde du "  'Nom de l'onglet à entregistrer
Rep = ThisWorkbook.Path & "\" ' Chemin du répertoire à adapter depuis votre PC
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Rep & Nom & LaDate & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False  'enregistrement du fichier en PDF
End Sub

Salut,
merci je testerais dans la journée
petite question quel est la différence ou l’intérêt de mettre une macro directement dans une feuille ou dans un module.
j’émets une supposition, la macro dans la feuille ne peut être utilisé que par la feuille et la macro dans le module par tout le classeur ?
@+