[VBA] valeur cellule sous condition
marcel77
-
marcel77 -
marcel77 -
Bonjour,
Je fais appel à vous car après avoir fait des recherches j'ai pas trouvé exactement le bout de code permettant de faire ca. (je veux du code et pas des règles excel)
jai un tableau avec dans la colonne A une valeur "Envoyé", j'aimerai que quand A23 par exemple est sur "Envoyé" alors B23 retourne la valeur de la date d'aujourd'hui.
N'importe quelle celulle de la colonne A a la valeur "Envoyé", la cellule ce la ligne associé a la colonne A est la date d'aujourd'hui.
Ensuite, j'aimerai que quand jouvre mon fichier xls, il y ai une comparaison entre les dates inscrites dans la colonne B et la date d'aujourd'hui. Si celle ci dépasse 3jours, ca envoi un mail.
Merci bcp pour votre aide.
Je fais appel à vous car après avoir fait des recherches j'ai pas trouvé exactement le bout de code permettant de faire ca. (je veux du code et pas des règles excel)
jai un tableau avec dans la colonne A une valeur "Envoyé", j'aimerai que quand A23 par exemple est sur "Envoyé" alors B23 retourne la valeur de la date d'aujourd'hui.
N'importe quelle celulle de la colonne A a la valeur "Envoyé", la cellule ce la ligne associé a la colonne A est la date d'aujourd'hui.
Ensuite, j'aimerai que quand jouvre mon fichier xls, il y ai une comparaison entre les dates inscrites dans la colonne B et la date d'aujourd'hui. Si celle ci dépasse 3jours, ca envoi un mail.
Merci bcp pour votre aide.
A voir également:
- [VBA] valeur cellule sous condition
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Proteger cellule excel - Guide
- Excel cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum Excel
- Excel colorer une cellule sous condition d'une autre cellule - Forum Bureautique
3 réponses
Bonjour,
Attachons nous déjà à la macro "Ecrire Date Si Envoyé"...
Premières petites questions préliminaires :
1- Quel est le nom de la feuille concernée?
2- la Colonne A est-elle complète ou comporte t'elle des cellules vides?
3- Si aujourd'hui je passe la macro, des dates vont s'inscrire en colonne B. Demain, si je la repasse, il ne faudra pas tenir compte des dates saisies la veuille et donc les conserver et surtout pas les modifier. On est d'accord?
4- Si dans la colonne D on n'a pas de date, est ce que la cellule est forcément vide?
5- on commence la boucle sur la colonne A à partir de qu'elle ligne? la 1ère? la 2ème? la 12ème?
6- Peux t'on se fier à la saisie de "Envoyé" dans la colonne A ou doit on se méfier des fautes d'orthographe et de saisie?
Exemple :
Envoyé
Envoye
Envoi
Envoyer
etc...
Cordialement,
Franck P
Attachons nous déjà à la macro "Ecrire Date Si Envoyé"...
Premières petites questions préliminaires :
1- Quel est le nom de la feuille concernée?
2- la Colonne A est-elle complète ou comporte t'elle des cellules vides?
3- Si aujourd'hui je passe la macro, des dates vont s'inscrire en colonne B. Demain, si je la repasse, il ne faudra pas tenir compte des dates saisies la veuille et donc les conserver et surtout pas les modifier. On est d'accord?
4- Si dans la colonne D on n'a pas de date, est ce que la cellule est forcément vide?
5- on commence la boucle sur la colonne A à partir de qu'elle ligne? la 1ère? la 2ème? la 12ème?
6- Peux t'on se fier à la saisie de "Envoyé" dans la colonne A ou doit on se méfier des fautes d'orthographe et de saisie?
Exemple :
Envoyé
Envoye
Envoi
Envoyer
etc...
Cordialement,
Franck P
1- nom de la feuille : feuil1
2-elle n'a pas de cellule vide
3-la macro va prendre la date inscrite en B et la comparer avec aujourd'hui, donc si ca dépasse pas 3jours, pas de mail. La date en B ne doit pas être modifiée.
4-Ca serait bien qu'en D si la date est dépassée de 3jours et que le mail a été envoyé, la valeur de la cellule associé à la même ligne soit : "Mail envoyé"
5-on commence a la ligne 2
-Oui on peut se fier à la saisie, c'est un menu déroulant.
Merci de votre aide.
2-elle n'a pas de cellule vide
3-la macro va prendre la date inscrite en B et la comparer avec aujourd'hui, donc si ca dépasse pas 3jours, pas de mail. La date en B ne doit pas être modifiée.
4-Ca serait bien qu'en D si la date est dépassée de 3jours et que le mail a été envoyé, la valeur de la cellule associé à la même ligne soit : "Mail envoyé"
5-on commence a la ligne 2
-Oui on peut se fier à la saisie, c'est un menu déroulant.
Merci de votre aide.
Alors malheureusement, je ne connais pas de code d'envoi mail par outlook, mais ça se trouve facilement sur Internet...
Trouve le et reviens dès que tu l'as.
Sinon, pour le reste :
Dans un module standard (sous VBE : Insertion/Module) copie-colle ces codes :
Et dans le module de ThisWorkbook :
Reviens dès que tu as trouvé un code d'envoi de mail.
je serais vraisemblablement absent ce week end, mais je reviens dès lundi.
Trouve le et reviens dès que tu l'as.
Sinon, pour le reste :
Dans un module standard (sous VBE : Insertion/Module) copie-colle ces codes :
Sub Ecrire_Date_En_B_Si_Envoye_En_A() Dim DerLig As Long, Lign As Long With Sheets("Feuil1") DerLig = .Range("A" & Rows.Count).End(xlUp).Row For Lign = 1 To DerLig If .Cells(Lign, 1) = "Envoyé" And .Cells(Lign, 2) = "" Then .Cells(Lign, 2) = CDate(Date) End If Next End With End Sub Sub EnvoiMail() MsgBox "Mail à envoyer" End Sub
Et dans le module de ThisWorkbook :
Private Sub Workbook_Open() Dim DerLig As Long, Lign As Long Call Ecrire_Date_En_B_Si_Envoye_En_A With Sheets("Feuil1") DerLig = .Range("A" & Rows.Count).End(xlUp).Row For Lign = 1 To DerLig If CDate(.Cells(Lign, 2)) = CDate(Date - 3) Then Call EnvoiMail End If Next End With End Sub
Reviens dès que tu as trouvé un code d'envoi de mail.
je serais vraisemblablement absent ce week end, mais je reviens dès lundi.