date fixe par action de condition

O

oxygene

Guest
Bonjour

Je cherche un moyen pour mettre à jour une ligne de demande
B8 B9

Si je mets B8 à 1 je veux mettre dans la cellule B9 une date fixe
j'ai essayé cette formule
=SI(B8=1;MAINTENANT();" ")

Le problème est qu'elle ne conserve pas la date fixe une fois la valeur
de la cellule B8 rempli par un 1.

A chaque journée ou le classeur est ouvert la date change.

@+
oxygene
 
C

Cathy

Guest
Bonjour le forum, comment ça va ce matin?

André, j'ai essayé ta jolie formule mais y'a trop de ; pour la syntaxe. Ca fonctionne en Belgique????

En attendant, oxygène, tu peux faire un copier et collage spécial valeur.

De plus, il est préférable d'utiliser aujourdhui() car sinon tu ne récupères pas un entier, tu as l'heure avec (par exemple 17/02/2003 à midi tu as 37669,5)

Bonne journée.

Cathy
 
C

Cathy

Guest
Suite...

André, j'étais pas réveillée,
tu voulais dire taper=SI(B8=1; ensuite appuyer sur les touches ctle et ; en même temps ensuite taper le reste de la formule soit ;""),

mais chez moi (en France) ça ne fonctionne pas non plus, j'ai 0 janvier 00, et de toute façon oxygène ne va pas taper cette formule à chaque fois, il veut une formule fixe, donc pas bon.

@+

Cathy
 
A

andré

Guest
Resalut oxygène, salut Cathy,

Moi non plus, je ne devais pas être bien réveillé ce matin.
La formule est : =SI(B8=1;"Ctrl+;";"")
Cette formule n'est effectivement valable que pour le jour même.

Pour afficher la date du jour sous condition (B8=1), et que celle-ci ne change plus tant que la valeur en B8 ne soit pas modifiée, je ne vois que le Copier/Coller de Ctrl+; ou AUJOURDHUI() (éventuellement par macro évenementielle en cas de modification de la valeur de la cellule B8).
Mais comme je ne suis pas performant en VBA, ... !

Bonne journée.
André.
 
C

Cathy

Guest
hi hi hi André!

C'est la pleine lune ça perturbe!
en mettant Ctrl+; entre guillemets tu affiches du texte!!!

Effectivement faut une macro, qu'elle soit en Auto_Open ou en macro événementielle

comme ça, vite fait, ça pourrait donner :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = Range("B8") Then
If ActiveCell.Value = 1 Then
Range("A1").Select
ActiveCell.FormulaR1C1 = "=IF(R8C2=1,TODAY(),"""")"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Else
Range("A1") = vide
End If
End If

Cathy
End Sub
 
C

Cathy

Guest
CORRECTION (merci à Ti pour son aide) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$8" Then Exit Sub
With Target
If .Value = 1 Then
.Offset(1, 0).Value = Date
Else
.Offset(1, 0).Value = ""
End If
End With
End Sub

Cette fois c'est OK.

Cathy
 
O

oxygene

Guest
Bonjour
Petit question supplémentaire, ce code agit sur une seul cellule
mais comment le faire sur l'ensemble de la colonne.

Je veux dire si je mets un 1 en dessous de B8 je veux en C8 la date et ainsi
de suite si je mets un 1 en B9, B10, B11 ....

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$8" Then Exit Sub
With Target
If .Value = 1 Then
.Offset(0, 1).Value = Date
Else
.Offset(0, 1).Value = ""
End If
End With
End Sub

J'ai changé la destination de la celllule pour ne pas avoir la date en dessous de B8.

@+
oxygene
 
C

Cathy

Guest
Bonjour le forum bonjour oxygene

tu changes juste :
If Target.Column <> 2 Then Exit Sub
(colonne B)
...
.Offset(0, 1).Value = Date
Else
.Offset(0, 1).Value = ""
cellule juste à droite : colonne C

Bonne journée.

Cathy
 
J

Jean-Marie

Guest
Bonjour, tout le monde

Cette fonction devrait fonctionner, mais en modifiant une des options de calcul d'Excel. Cocher l'itération, et fixer la valeur de cette itération à 1.

Je mets dans la cellule A1 cette fonction

=SI(B8=1;MAINTENANT();SI(ET(A1>0;ESTVIDE(A1));A1;" "))

@+Jean-Marie
 
C

Cathy

Guest
Salut Jean-Marie et le forum

ta formule, si elle est en A1 il y a une référence circulaire non résolue

G pas compris le si et a1>0 et a1est vide, c'est l'un ou l'autre, il peut pas être vide et positif à la fois???

et de toute façon tu obtiens une fonction date donc remise à jour à chaque fois alors qu'oxygène souhaite une date figée.

Mais tu apportes ta pierre à l'édifice, c'est bien.

Bonne journée

Cathy
 

Discussions similaires

Réponses
4
Affichages
267
Réponses
4
Affichages
306

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko