Si texte alors date

Fermé
Roro - 27 mars 2015 à 10:22
 Roro - 27 mars 2015 à 18:24
Bonjour à tous,

Je sollicite à nouveau votre aide car une fois de plus les macros me posent problèmes. Cela fait presque 2 jours que je cherche sans vraiment trouver de réponse.

Voilà mon problème :
En A mes cellules peuvent prendre plusieurs valeurs : Oui, Non, En attente ...
En B je souhaiterai que lorsque que je décide de changer la valeur de A en "Oui" (et uniquement en Oui) alors j'affiche la date du jour.

Ma colonne A est une colonne où j'indique si je fais un publipostage j'ai donc besoin de connaitre la date de ce publipostage en B. Il faut donc que la formule repère le changement de statut et m'indique la date (qui ne devra plus pouvoir évoluer lors s'une prochaine ouverture du fichier) alors qu'il peut y avoir des alternances Oui, Non, En attente, Oui.

J'espère avoir été clair.

En vous remerciant par avance pour votre aide.

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 302
27 mars 2015 à 11:20
Bonjour
macro à installer dans le module feuille concerné (par ex feuil1(feuil1)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then
If Target = "oui" Then Target.Offset(0, 1) = Date
End If
End Sub
1
Bonjour,

Merci michel_m pour votre réponse, mais le seul problème est que lorsque j'effectue un copié / glissé dans ma colonne A la macro s'applique même si je copie / glisse des "Non". Est-il possible de faire en sorte que la macro de s'effectue que pour "Oui"?

En vous remerciant pour votre aide précieuse.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 302
27 mars 2015 à 16:17
lorsque j'effectue un copié / glissé dans ma colonne A ...;

je ne comprend pas ce que tu veux dire par copier-glisser
0
J'entend par copié / glissé le fait de sélectionner le petit carré en bas à droite d'une cellule et de faire descendre la formule.
(Par exemple quand j'ai 1, 2 ,3, 4... Je tire ma cellule pour avoir 5, 6, 7, ...)

J'espère avoir été plus clair

Merci de votre aide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 302 > Roro
Modifié par michel_m le 27/03/2015 à 17:18
Le principe est que chaque fois que tu écris "oui" (attention à la casse) cela te donne la date sans formule, ce que tu avais demandé (lorsque que je décide de changer la valeur de A en "Oui")
donc quand tu tires vers le bas cela inscris la date
si non tu vires la macro et tu écris en B1
SiA1="oui";aujourdhui();"") et tu tires vers le bas
0
Votre proposition de macro fonctionne très bien mais il est vrai que dans le cas ou je tire vers le bas un texte, la date s'affiche automatiquement même si le texte n'est pas "oui". C'est comme si la macro fonctionnait lorsque je modifie une cellule seul mais ne fonctionnait plus lorsque je modifie plusieurs cellule à la fois.
Que voulez-vous dire par "attention à la casse"?

Après j'avais bien pensé à votre formule mais je crains qu'elle se mette à jour à chaque ouverture du fichier il faudrait alors la figer si jamais la date apparaît.
0