Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Envoie mail avec sous conditions (excel2003)

  • Initiateur de la discussion Initiateur de la discussion Tazko
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tazko

XLDnaute Nouveau
Bonjour,

Aprés plusieurs recherches sur le forum j'ai trouvé la moitié de ce que j'ai besoin:
c'est pour cela je viens vers vous demander de l'aide, en faite j'ai ce code ci dessous qui fontionne parfaitement , je souhaite rajouter une condition :
les mails seront envoyé pour rappel à ceux qui sont en retard sachant que -
-les noms sont en colonne C
- les dates en colonne E
-infos generale colonne z
- l'intitulé est fixe " retard de.............."

quand la date est supérieur à la date d'aujoud'hui ça me prépare le mail sur outlook 2003là j'éxecute la macro ...et la colonne concerné peut contenir une centaine de dates
j'ai essayé de faire par exemple quelques manipulation telque:

'For i = 7 To 100

'If Now() >= Cells(i, 9) Then

'Email = Cells(i, 8)
'Subj = "Retard"
Msg = ""
Msg = Msg & "Chèr(e) " & Cells(i, 7) & "," & vbCrLf & vbCrLf
Msg = Msg & "Vous êtes en retard sur le projet " & Cells(i, 4) & " devant se terminer le "
Msg = Msg & Cells(i, 9).Text & "." & vbCrLf & vbCrLf
Msg = Msg & "Nom et Prénom" & vbCrLf
Msg = Msg & "Statut"

Mais j'ai pas reussi...
Quelqu'un a une idée s'il vous plait?


Premier code simple qui fonctionne bien:
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String

MailAd = "jjjjj@jjjj.com"
Subj = "attention verification"
Range("G2") = "Mon texte"

Range("G2").Select

MsgBox Msg
URLto = "mailto:" & MailAd & "?subject=" & Subj
ActiveWorkbook.FollowHyperlink Address:=URLto

' Boucle d'attente que Outlook se lance
Dim WaitBegin As Long, WaitEnd As Long
WaitBegin = Timer
WaitEnd = WaitBegin + 1
Do Until Timer >= WaitEnd
DoEvents
Loop

SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys Msg

End Sub

En vous remerciant d'avance

Bonne journée
 
Re : Envoie mail avec sous conditions (excel2003)

Re,

Voilà j'ai trouvé un peu de temps pour travailler sur le fichier.

Normalement ça devrai aller chez toi, si ça pose encore un problème avec "destinataire" c'est que tu n'as pas activé l'option "microsoft outlook library" car chez moi ça fonctionne très bien sans erreur.

Bonne journée.

John
 

Pièces jointes

Merci pour ton message et merci d’être intéressé a mon petit problème.
De mon coté j'essaye de trouvé des solutions, d'ailleurs j'ai trouvé une alternative au problème du signe "="

J'ai remplacé

If Now() = Cells(i + 6, 9) Then......


Par
J'ai mis la date du jour dans toute la colonne k
if Cells(i + 6, 9) = Cells(i + 6, 11) then...
ça marche mais je pense pas que c'est la meilleure formule...en faite je ne comprend pas pourquoi quand on met "<" ou ">" ça marche très bien mais pas qu'on met "=", peut être parce que now attribue aussi l'heure?????

En tout cas bon courage pour ton boulot..

Amicalement,
 
Bonjour JOHN,

merci beaucoup de m'avoir accordé un peu de ton temps et de m'avoir aidé Ça marche très bien, en tout cas j'aurais jamais pu programmer ça....je pencherais plus tard sur les détails de ces codes c'est très intéressant.

j'ai une autre question s'il te plais et si tu as un peu de temps, existe il un moyen pour regrouper toutes les lignes détectés dans un seul e mail (body)?, vue que j'ai un seul interlocuteur.

J'ai regardé un peu sur le forum , d'autres solutions existent tel que envoyé une feuille....mais je trouve pas une macro pareil...

Amicalement et Bon courage pour ton travail
 
Bonjour JOHN,

Super ca fonctionne trés bien,merciiiiiiiiiiii;

Parcontre j'ai 2 derniers souci si tu peux encore me consacré un peu de temps s'il te plais..

1/quand je laisse 1 seule date ou pas de date du tout dans la colonne date dans mon tableau il me renvoie "erreur 9

ligne = dateencodee_text = dateencodee(0) & "/" & dateencodee(1) & "/" & dateencodee(2) "

2/j'ai rajouté 2 feuilles et j'ai recopié la meme formule(rien ne change sauf le body du mail), j'ai changé seulement "with sheets("xxxx")...." rien ne se passe, peut etre j'ai mal introduit le with ....end with..


En te remerciant d'avance

Amicalement
 

Pièces jointes

Re : Envoie mail avec sous conditions (excel2003)

Bonsoir le fil 🙂,
Comme je continue à suivre le fil, juste un petit mot pour féliciter John pour sa persévérance : Bravo 😀.
Bonne continuation 😎
 
Re : Envoie mail avec sous conditions (excel2003)

Bonjour,

JNP ==> Merci, je suis persévérant et j'aime que tout soit fini une fois que je suis sur un fichier 😱

Tazko ==> Voilà j'ai modifié le fichier selon tes besoins, il fallait mettre une condition supplémentaire pour tester si il y a une date encodée ou non et pour les "With" en fait avec "With activesheet" c'est suffisant, il ne faut pas rajouter d'autre "With" par contre il faut faire un test pour savoir si on se trouve sur telle ou telle feuille (comme dans ton exemple "RETARD", "FACTURATION" et "ANNULATION"). Là je me sert simplement d'un "select case" et selon le cas le corp du texte de ton mail change.

Si tu as encore des questions, n'hésite pas je suis là 😱)

Bonne journée.

John
 

Pièces jointes

Dernière édition:
Bonjour JOHN,

Pas de commentaires !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ca marche trés bien...

Merci beaucoup😱

j'ai activé l'option "microsoft outlook library" et ça fonctionne.

ps=Merci a tous les intervenants

Amicalement et a bien tôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
809
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
818
Réponses
3
Affichages
582
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…