petite modif , macro envoie mail

letroubadour

XLDnaute Occasionnel
bonjour le forum

dans mon fichier lorsque l'on arrive a 30 jours de l'échéance en appuyant sur le bouton un mail part et dans la case envoie s'affiche "mail envoyé"

je que je veux rajouter :

lorsque l'échéance est passée (cellules rouge) ça renvoie le même mail et ça met dans la case envoie "deuxième mail"

j'ai bien essayé mais ça marche pas alors je reviens encore vers vous

Merci

Le troubadour
 

Pièces jointes

  • copie.xlsm
    70.5 KB · Affichages: 54
  • copie.xlsm
    70.5 KB · Affichages: 58
  • copie.xlsm
    70.5 KB · Affichages: 59

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Bonsoir letroubadour,

Voici ton fichier modifié.

A te relire

Martial
 

Pièces jointes

  • copie.xlsm
    68.7 KB · Affichages: 59
  • copie.xlsm
    68.7 KB · Affichages: 57
  • copie.xlsm
    68.7 KB · Affichages: 55

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

Merci Yaloo pour ta réponse

ça fonctionne parfaitement , y il quelque chose qui manque et que je n'avais pas mentionné.

lorsque l'on arrive 30 jours avant l'échéance le MSG part mais il part qu'une seule fois, si on appuie à nouveau sur le bouton il ne repart plus.

Serait il possible de faire de même dans le second cas lorsque l'échéance est dépassée ?
en effet si entre temps une échéance est déclarée seul ce message doit partir et pas les précédents

merci pour ton aide


Le troubadour
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Bonjour letroubadour,

Avec cette macro, d'après ce que j'ai vu dans ton fichier et ce que j'ai compris :

VB:
Sub Rectangleàcoinsarrondis1_Clic()
NbLignes = Application.CountA(Columns(4)) + 1
For Ligne = 3 To NbLignes
If Cells(Ligne, 4) < Date And Cells(Ligne, 6) = "" Then
  EnvoiMail (Ligne)
  Cells(Ligne, 6) = "deuxième mail"
ElseIf Cells(Ligne, 4) - Date <= Cells(18, 9) And Cells(Ligne, 6) = "" Then
  EnvoiMail (Ligne)
  Cells(Ligne, 6) = "mail envoyé"
End If
Next Ligne
End Sub

A+

Martial
 

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

Bonjour

la macro ne fonctionne pas comme je voudrais , sur la dernière si la date est "orange" ( 30 jours avant l'échéance ) le message part
mais lorsqu'elle devient "rouge" il n'y a plus de messages qui partent

merci

le troubadour
 

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Bonsoir letroubadour,

Petit récapitulatif de ta demande si j'ai bien compris :eek: arrêtes-moi si c'est faux :

- 30 jours avant la date : si en colonne F, rien n'est inscrit : on fait partir un mail et on inscrit "mail envoyé".
- 30 jours avant la date, si en colonne F, est inscrit "mail envoyé" on ne fait rien partir.
- Si date dépassée, si rien n'est inscrit en colonne F alors on envoie un mail et on écrit "deuxième mail"
- Si date dépassée, en colonne F est écrit "deuxième mail" alors on envoie rien.

Me trompe-je ? Si c'est bien ça, il me semble que ma macro du post #4 correspond à ta demande.

Sinon dis-moi où ça ne va pas.

A+

Martial
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Re,

Dans ta Feuil1 il faut changer le code comme ça :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Columns(4)) Is Nothing Then Exit Sub
  If Target < Date Then
    Cells(Target.Row, 6) = ""
  ElseIf Target - Date > Cells(18, 9) Then
    Cells(Target.Row, 6) = ""
  End If
End Sub

Si tu veux relancer ton agrément lorsque ta date est dépassée.

A+

Martial
 

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

bonsoir Yaloo

dans le récap tout est bon sauf le 3° pt

si la date est dépassée , il est inscrit "mail envoyé" en F , on envoie un mail et on écrit "deuxième mail"

j'ai essayé de mettre la macro mais ça marche pas , si tu peux la joindre au fichier ça serait pas mal

merci


RAPHAEL
 

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Bonsoir Raphaël,

Voici ton fichier, pour la macro de Feuil1, je suis revenu à ta macro d'origine.

Dans ce cas-là il suffisait de tester la valeur de la colonne F pour voir si le premier mail avait été envoyé.

A+

Martial
 

Pièces jointes

  • copie.xlsm
    68.9 KB · Affichages: 39
  • copie.xlsm
    68.9 KB · Affichages: 41
  • copie.xlsm
    68.9 KB · Affichages: 42

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

bonsoir, merci pour ton aide

ca marche pas mal , juste un petit bug.

Lorsque le deuxième mail est affiché en F , si j'appuie a nouveau sur "ENVOIE" des mails repartent (il ne faut pas ) .

(je fais les essaies en changeant la date de l'ordi)

merci
bonne soirée

RAPHAEL
 

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Re,

Bon, en prenant le problème différemment, en fonction de la valeur de la colonne F.

Suivant cette valeur, on définit la date puis l'envoi de mail si besoin.

Voir avec la macro ci-dessous :

VB:
Sub Rectangleàcoinsarrondis1_Clic()
Application.ScreenUpdating = 0: Application.EnableEvents = 0
NbLignes = Application.CountA(Columns(4)) + 1
For Ligne = 3 To NbLignes
  If Cells(Ligne, 6) = "" Then
    If Cells(Ligne, 4) - Date <= Cells(18, 9) Then
      EnvoiMail (Ligne)
      Cells(Ligne, 6) = "mail envoyé"
    End If
  ElseIf Cells(Ligne, 6) = "mail envoyé" Then
    If Cells(Ligne, 4) < Date Then
      EnvoiMail (Ligne)
      Cells(Ligne, 6) = "deuxième mail"
    End If
  End If
Next Ligne
Application.ScreenUpdating = -1: Application.EnableEvents = -1
End Sub

A+

Martial
 

Pièces jointes

  • copie.xlsm
    69 KB · Affichages: 49
  • copie.xlsm
    69 KB · Affichages: 55
  • copie.xlsm
    69 KB · Affichages: 47

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

merci pour ton aide, tu dois vraiment me prendre pour un lourd dingue et un Blai....

ta macro fonctionne bien , nickel, par contre lorsque que je la met dans mon projet finale , là ca ne va plus du tout.
Le fichier est le même avec une colonne en plus, j'ai modifié dans la macro le N° des colonnes

pour les dates en jaune = normal
en orange = on arrive a 30 Jours de l'échéance = mail envoyé
en rouge = échéance passée = deuxième mail
en gris = pas de date

Sur ce fichier si appuie sur le bouton des mails partent de tout va et s'affiche là où il n'y a pas de dates

je ne comprends pas grand chose mais là je suis noyé, il y a trois jours c'était nickel

merci pour ton aide ,


Raphael
 

Pièces jointes

  • Copie 1.xlsm
    75.8 KB · Affichages: 55
  • Copie 1.xlsm
    75.8 KB · Affichages: 66
  • Copie 1.xlsm
    75.8 KB · Affichages: 70

Yaloo

XLDnaute Barbatruc
Re : petite modif , macro envoie mail

Bonjour Raphaël,

Tu as 1 grosse différence avec le classeur que tu avais posté au début : La colonne "Date d'expiration" n'est pas complètement remplie, d'où 2 problèmes :

- NbLignes correspond aux NB de cellules remplies + 1 avec ta ligne de code : NbLignes = Application.CountA(Columns(5)) + 1, on obtient la ligne 15, alors qu'il faut prendre la dernière ligne remplie de la colonne E, avec NbLignes = Cells(Rows.Count, 5).End(xlUp).Row , on obtient la ligne 23

- Comme certaines cellules de la colonne E sont vide, elles sont pris en compte comme 0, donc forcément la Date du jour est supérieurs à 0.

Vois avec la macro ci-dessous, en plus de tester la colonne G, cela teste si la colonne E est vide.

VB:
Sub Rectangleàcoinsarrondis1_Clic()
Application.ScreenUpdating = 0: Application.EnableEvents = 0
NbLignes = Cells(Rows.Count, 5).End(xlUp).Row
For Ligne = 3 To NbLignes
  If Cells(Ligne, 5) <> "" And Cells(Ligne, 7) = "" Then
    If Cells(Ligne, 5) - Date <= Cells(18, 10) Then
EnvoiMail (Ligne)
      Cells(Ligne, 7) = "mail envoyé"
    End If
  ElseIf Cells(Ligne, 5) <> "" And Cells(Ligne, 7) = "mail envoyé" Then
    If Cells(Ligne, 5) < Date Then
EnvoiMail (Ligne)
      Cells(Ligne, 7) = "deuxième mail"
    End If
  End If
Next Ligne
Application.ScreenUpdating = -1: Application.EnableEvents = -1
End Sub


A+

Martial
 
Dernière édition:

letroubadour

XLDnaute Occasionnel
Re : petite modif , macro envoie mail

Bonsoir au forum

la macro (molude 1) faites par YALOO fonctionne correctement, je voudrais juste y ajouter 2 modifs

pour rappel lorsque l'on arrive à 30 jours de la date d'échéance celle-ci se colore en "orange"
lorsque l'échéance est dépassée elle se met en rouge . ça génère un message (date orange) ou un 2° (date rouge) et une annotation se met dans la colonne G


Ce que désire, c'est que lorsque l'on change la date pour un nouvelle agrément les annotations de la ligne concernées disparaissent de la colonne G

ainsi en ligne 4 - 8 -13 si je met par exemple une date au 20/07/15, "envoie message" disparait de G4-G8-G13

et quand ligne 16 -21- 22 si je met le même date , "deuxième mail " disparaisse également de G16-G21-G22


merci par avance

Le troubadour
 

Pièces jointes

  • Copie 1.xlsm
    103.6 KB · Affichages: 42
  • Copie 1.xlsm
    103.6 KB · Affichages: 47
  • Copie 1.xlsm
    103.6 KB · Affichages: 49

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils