Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Test de dates...

23 réponses
Avatar
pmartini
Bonjour,

Dans l'exemple ci-dessous, j'envoie un message via Outlook si je valide une
cellule de la colonne A et qu'elle est différente du 25/09/06. Comment
puis-je faire pour que la condition soit la suivante: Envoi du message si une
cellule de la colonne A est égale à la date du jour moins 2 ?

Merci pour votre aide.
Pierre.




...................................................................................
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Value <> CDate("25/09/2006") Then Exit Sub
Dim objOutlk
Dim ObjOutlkMail
On Error Resume Next
Set objOutlk = GetObject(, "Outlook.Application")
If Err <> 0 Then Set objOutlk = CreateObject("Outlook.Application")
On Error GoTo 0
Set ObjOutlkMail = _
objOutlk.CreateItem(olMailItem)
With ObjOutlkMail
.To = "info@paal.fr"
.Body = "Voir tableau des retards ! !"
.Send
End With
Set ObjOutlkMail = Nothing
Set objOutlk = Nothing
End If
End Sub
..........................................................................

3 réponses

1 2 3
Avatar
pmartini
Le code suggéré par Jacky fonctionne "au poil" , car le contrôle se fait en
sortie de cellule, sur validation, et si B1 est vide, le message n'est pas
envopyé.
Donc, c'est au poil, exactement ce que je voulais.

Merci à tous les deux, je n'hésiterai pas à vous ennuyer à nouveau si
besoin, car vous êtes pro et rapides. A la vôtre...

Si vous étiez sur Nice, on pourrait un de ces jours s'en jeter
une..................

Pierre.


Bonjour Jacqu.....
Ne pas oublier que la macro est en "Worksheet_Change"
Admettons que tu rentres une date en A1, il n'y a encore rien en B1,... le
fait de cliquer sur B1 et zut le message est parti, puisque "Si
somme(A1:A100)>somme(B1:B100)"
Selon moi, seul le demandeur sait comment sont géré les colonnes A et B
Bon, j'ai mal au crâne, je vais boire un coup ;o)

--
Salutations
JJ

"Jacquouille" a écrit dans le message de
news:
Salut Jacky et PM
Si je comprends bien:
En col A, des dates
En col B, des dates.
Si une seule cel de A est plus grande que sa collègue de B (ex A15>B15),
alors on envoie un msg.
Si c'est cela, pourquoi ne pas faire
Si somme(A1:A100)>somme(B1:B100), alors .....???
C'est moi que j'attends vos idées, une bonne chope en main.
Quant au martini, c'est bien vrai que, à défaut de bière ...-))) mais, tu
devrais faire un effort -))
tout au plaisir de vous lire ...
JT

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Jacky" a écrit dans le message de news:

Bonjour,
<<Si cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule 50
de A
cellule 50 de B, ... quelle que soit la ligne ???


Ceci peut-être
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:b")) Is Nothing Then
x = Target.Row
If Range("a" & x) <= Range("b" & x) Or Range("a" & x) = "" Or Range("b" &
x) = "" Then Exit Sub
'------
'-----reste du code (non testé)
'-----
End If
End Sub
'------------

--
Salutations
JJ

"pmartini" a écrit dans le message
de news:
Bonjour,

Quand il n'y a pas de Bière, le Martini c'est mieux que de l'eau !!!

Pour reprendre mon pb technique, dans l'exemple ci-dessous, je déclenche
un
message quand je valide n'importe quelle cellule de la colonne A si elle
remplit la condition = 25/09/06. Je voudrais savoir comment faire pour
envoyer un message standard général si la condition suivante est
remplie: Si
cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule 50 de A

cellule 50 de B, ... quelle que soit la ligne ???




...........................................................................................;;
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Value <> CDate("25/09/2006") Then Exit Sub
Dim objOutlk
Dim ObjOutlkMail
On Error Resume Next
Set objOutlk = GetObject(, "Outlook.Application")
If Err <> 0 Then Set objOutlk = CreateObject("Outlook.Application")
On Error GoTo 0
Set ObjOutlkMail = _
objOutlk.CreateItem(olMailItem)
With ObjOutlkMail
.To = ""
.Body = "Voir tableau des retards ! !"
.Send
End With
Set ObjOutlkMail = Nothing
Set objOutlk = Nothing
End If
End Sub
.......................................................................





















Avatar
Jacquouille
Aaaaaah, l'Alsacien
Ne bois pas trop car.... (icar)
Si tu entres une date en A1 et rien en B1, je crains que A1 soit plus grand
que B1, donc que cela déclenche la macro.
Qu'en dis-tu?
Quant à P (Paul, Pierre, Patric.. ?) je trouve qu'il devrait changer de
collaborateurs. -))
Pour ce qui est des sommes, même avec l'excellente macro fournie, si, après
l'envoi d'un msg, on ne modifie pas la date en col B, dès la prochaine
ouverture, je crains que cette macro ne re-fonctionne encore...
A méditer.
Au Fait, PMartini, tu es de quelle ville?

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Jacky" a écrit dans le message de news:
%
Bonjour Jacqu.....
Ne pas oublier que la macro est en "Worksheet_Change"
Admettons que tu rentres une date en A1, il n'y a encore rien en B1,... le
fait de cliquer sur B1 et zut le message est parti, puisque "Si
somme(A1:A100)>somme(B1:B100)"
Selon moi, seul le demandeur sait comment sont géré les colonnes A et B
Bon, j'ai mal au crâne, je vais boire un coup ;o)

--
Salutations
JJ

"Jacquouille" a écrit dans le message de
news:
Salut Jacky et PM
Si je comprends bien:
En col A, des dates
En col B, des dates.
Si une seule cel de A est plus grande que sa collègue de B (ex A15>B15),
alors on envoie un msg.
Si c'est cela, pourquoi ne pas faire
Si somme(A1:A100)>somme(B1:B100), alors .....???
C'est moi que j'attends vos idées, une bonne chope en main.
Quant au martini, c'est bien vrai que, à défaut de bière ...-))) mais, tu
devrais faire un effort -))
tout au plaisir de vous lire ...
JT

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Jacky" a écrit dans le message de news:

Bonjour,
<<Si cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule 50
de A
cellule 50 de B, ... quelle que soit la ligne ???


Ceci peut-être
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:b")) Is Nothing Then
x = Target.Row
If Range("a" & x) <= Range("b" & x) Or Range("a" & x) = "" Or Range("b"
& x) = "" Then Exit Sub
'------
'-----reste du code (non testé)
'-----
End If
End Sub
'------------

--
Salutations
JJ

"pmartini" a écrit dans le message
de news:
Bonjour,

Quand il n'y a pas de Bière, le Martini c'est mieux que de l'eau !!!

Pour reprendre mon pb technique, dans l'exemple ci-dessous, je
déclenche un
message quand je valide n'importe quelle cellule de la colonne A si
elle
remplit la condition = 25/09/06. Je voudrais savoir comment faire pour
envoyer un message standard général si la condition suivante est
remplie: Si
cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule 50 de
A >
cellule 50 de B, ... quelle que soit la ligne ???



...........................................................................................;;
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Value <> CDate("25/09/2006") Then Exit Sub
Dim objOutlk
Dim ObjOutlkMail
On Error Resume Next
Set objOutlk = GetObject(, "Outlook.Application")
If Err <> 0 Then Set objOutlk = CreateObject("Outlook.Application")
On Error GoTo 0
Set ObjOutlkMail = _
objOutlk.CreateItem(olMailItem)
With ObjOutlkMail
.To = ""
.Body = "Voir tableau des retards ! !"
.Send
End With
Set ObjOutlkMail = Nothing
Set objOutlk = Nothing
End If
End Sub
.......................................................................




















Avatar
Jacky
Re....

Si tu entres une date en A1 et rien en B1, je crains que A1 soit plus
grand que B1, donc que cela déclenche la macro.
Qu'en dis-tu?
C'est bien là le problème elle ne doit se déclencher que si a1> b1 et non

pas si B1="" sinon je ne vois pas l'intérêt de b1

.....dès la prochaine ouverture, je crains que cette macro ne re-fonctionne
encore...
Que s'il y a modification en colonne A ou B


Arrête de boire maintenant
;o))
JJ


"Jacquouille" a écrit dans le message de
news: %
Aaaaaah, l'Alsacien
Ne bois pas trop car.... (icar)
Si tu entres une date en A1 et rien en B1, je crains que A1 soit plus
grand que B1, donc que cela déclenche la macro.
Qu'en dis-tu?
Quant à P (Paul, Pierre, Patric.. ?) je trouve qu'il devrait changer de
collaborateurs. -))
Pour ce qui est des sommes, même avec l'excellente macro fournie, si,
après l'envoi d'un msg, on ne modifie pas la date en col B, dès la
prochaine ouverture, je crains que cette macro ne re-fonctionne encore...
A méditer.
Au Fait, PMartini, tu es de quelle ville?

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Jacky" a écrit dans le message de news:
%
Bonjour Jacqu.....
Ne pas oublier que la macro est en "Worksheet_Change"
Admettons que tu rentres une date en A1, il n'y a encore rien en B1,...
le fait de cliquer sur B1 et zut le message est parti, puisque "Si
somme(A1:A100)>somme(B1:B100)"
Selon moi, seul le demandeur sait comment sont géré les colonnes A et B
Bon, j'ai mal au crâne, je vais boire un coup ;o)

--
Salutations
JJ

"Jacquouille" a écrit dans le message de
news:
Salut Jacky et PM
Si je comprends bien:
En col A, des dates
En col B, des dates.
Si une seule cel de A est plus grande que sa collègue de B (ex A15>B15),
alors on envoie un msg.
Si c'est cela, pourquoi ne pas faire
Si somme(A1:A100)>somme(B1:B100), alors .....???
C'est moi que j'attends vos idées, une bonne chope en main.
Quant au martini, c'est bien vrai que, à défaut de bière ...-))) mais,
tu devrais faire un effort -))
tout au plaisir de vous lire ...
JT

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Jacky" a écrit dans le message de news:

Bonjour,
<<Si cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule
50 de A
cellule 50 de B, ... quelle que soit la ligne ???


Ceci peut-être
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:b")) Is Nothing Then
x = Target.Row
If Range("a" & x) <= Range("b" & x) Or Range("a" & x) = "" Or Range("b"
& x) = "" Then Exit Sub
'------
'-----reste du code (non testé)
'-----
End If
End Sub
'------------

--
Salutations
JJ

"pmartini" a écrit dans le message
de news:
Bonjour,

Quand il n'y a pas de Bière, le Martini c'est mieux que de l'eau !!!

Pour reprendre mon pb technique, dans l'exemple ci-dessous, je
déclenche un
message quand je valide n'importe quelle cellule de la colonne A si
elle
remplit la condition = 25/09/06. Je voudrais savoir comment faire pour
envoyer un message standard général si la condition suivante est
remplie: Si
cellule 1 de colonne A > à cellule 1 de colonne B, ou si cellule 50 de
A >
cellule 50 de B, ... quelle que soit la ligne ???



...........................................................................................;;
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Value <> CDate("25/09/2006") Then Exit Sub
Dim objOutlk
Dim ObjOutlkMail
On Error Resume Next
Set objOutlk = GetObject(, "Outlook.Application")
If Err <> 0 Then Set objOutlk = CreateObject("Outlook.Application")
On Error GoTo 0
Set ObjOutlkMail = _
objOutlk.CreateItem(olMailItem)
With ObjOutlkMail
.To = ""
.Body = "Voir tableau des retards ! !"
.Send
End With
Set ObjOutlkMail = Nothing
Set objOutlk = Nothing
End If
End Sub
.......................................................................
























1 2 3