Posez votre question Signaler

[Excel] date automatique sans mise à jour

bob - Dernière réponse le 29 mai 2012 à 13:15
Bonjour,
Je cherche à marquer la date du jour dans B1 dès que A1 est remplie. La formule =si(A1=""; ""; AUJOURDHUI() ) dans B1 fonctionne très bien, mais quand je réouvre le fichier le lendemain, la date se met à jour, et ce n'est pas ce que je souhaite.
Comment faire pour que cette info soit figée d'un jour sur l'autre.
Quand j'utilise Ctrl ; à la place de la formule, ça marche très bien et ça reste figé dans le temps, mais j'aimerais une solution plus "automatique" que Ctrl ; .
Merci
Cordialement
Bob
Lire la suite 

[Excel] date automatique sans mise à jour »

18 réponses
Réponse
+4
moins plus
Bonjour,

une macro évènementielle te conviendrait-elle?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then If Not (IsEmpty(Target.Value)) Then Range("B1").Value = Now Else Range("B1").ClearContents
End Sub
à mettre derrière ta feuille de calcul

cordialement
bob - 28 sept. 2006 à 14:11
Merci,

ça répond à la moitié de ma question. :-D
En fait, je voudrais propager cette règle sur les colonnes A et B.
Je m'explique :
Si je saisie une valeur dans A1, alors B1 prend la date du jour.
Si je saisie une valeur dans A2, alors B2 prend la date du jour.
...
Si je saisie une valeur dans An, alors Bn prend la date du jour.

Comment modifier ta macro évenementielle en ce sens?

Cordialement
Bob
thalys - 29 mai 2012 à 13:15
je souhaite mettre juste l'année toute seule sans jour mois
Ajouter un commentaire
Réponse
+2
moins plus
bonjour,

comme ça :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then If Not (IsEmpty(Target.Value)) Then Range("B" & Target.Row).Value = Now Else Range("B" & Target.Row).ClearContents
End Sub


A+
TotoL - 14 févr. 2007 à 15:32
Bonjour,

Il est très bien ce script, mais je l’ai testé et il ne fonctionne toujours pas très bien parce qu’à chaque fois que je reviens sur la cellule, et bien elle se met à jour.

Je suis en train de réaliser un document de fiche d’incident.
Dans une première partie j’utilise la date pour générer un numéro, c’est-à-dire :
Ex : 14/02/2007 15 :00
Dans ma cellule je voudrais avoir ceci 20070214-1500.
Pour cela j’ai utilisé la formule classique sous Excel : =MAINTENANT()

Ce que je cherche à faire avec cette cellule et de créer un numéro unique lors de la première ouverture du fichier et qu’elle ne se mette plus a jour, quel soit statique. Surtout impossible de changer le numéro.

Dans la deuxième partie, j’ai ceci :
......| A | B | C | D
13 | N° | Date | Heure | Intervenant
14 | 1 | 14/02/2007 | 14H26 | Toto
15 | 2 | 14/02/2007 | 14H26 | Titi
16 | 3 | 14/02/2007 | 14H26 | Tutu

Ce que je voudrais faire est :
- Dès qu’un non est entré dans la colonne E (Intervenant)
- La date et l’heure se met à jour automatiquement mais une seul fois, sans possibilité de changer, sauf si le nom est supprimer.

Ce que j’ai fait : dans la colonne Date j’ai mis cette formule : =SI(ESTVIDE(D14);"";AUJOURDHUI())
dans la colonne Heure j’ai mis cette formule : =SI(ESTVIDE(D14);"";MAINTENANT())

Il faut savoir que ces deux formules ne sont pas du tout fonctionnelles. Les cellules se mettent à jour systématiquement dès que je rentre un nouvel utilisateur et en plus met à jours celles des autres utilisateurs. Et aussi par la même occasion le numéro d’incident qui est basé sur la date.

Je ne suis pas du tout une personne qui maitrise cet outil, mais j’essai de le faire pour simplifier mon quotidien.

Merci pour la personne qui pourra m’aider a trouvé une solution à mon problème.
jamesr - 24 févr. 2008 à 03:07
YES, je suis assez content de moi, depuis le temps que je cherchais à insérer une date sans qu'elle soit mise à jour.

C'est même d'une facilité déconcertante, mais comme souvent, il fallait y penser.

La Solution:

Vous enregistrez une macro qui insert l'heure ou la date du jour, "maintenant()" par exemple.

Puis vous copier la cellule (plus facile à faire en macro relative) et vous faite "collage spécial" coller la valeur.

C'est tout simple non????

James

Ps: faire coller les valeurs à Excel peut être utile dans de nombreux cas, par exemple lorsqu'on veut récupérer le résultat d'un calcule dans un programme externe.
johannenzo- 27 janv. 2011 à 16:41
Bonjour JvDo,

j'ai testé ton programme VBA sur une feuille vierge et elle fonctionne très bien pour l'application que je souhaite mettre en place.
Cependant pour moi les cellules concernées ne sont pas dans les colonnes A et B.
Pour moi la colonne A est en B et la colonne B est en F !!!
Quelles termes je dois changer dans la programmation VBA pour que cela fonctionne ?
Cordialement
Ajouter un commentaire
Réponse
+1
moins plus
Bonsoir,
tu remplaces le 1 par 2 et le "B" par "F"
cordialement
Elea - 23 mars 2011 à 11:20
Merci,
Mais ce n'est pas là le problème, ca ca marche c'est juste que je voudrais que cette mise en forme ne s'applique que a partir de la ligne N (16 en l'occurrence).
Sinon quand je modifie mon entête j'ai des dates qui arrivent de partout :-/

Je pense bien ajouter un If pour écrire si la ligne est supérieur a 16 alors, et la le reste de la macro.

Mais il me manque la syntaxe ...
Elea - 23 mars 2011 à 11:39
Ok j'ai finis par trouver,
Voici le code pour ceux que ca intéresse :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Set vtarget = Intersect(Target, Columns(2))
If Not (vtarget Is Nothing) Then
For Each varea In vtarget
For Each vcell In varea
If Not (IsEmpty(vcell.Value)) Then
If vcell.Row > 16 Then
Range("A" & vcell.Row).Value = Now
End If
Else
Range("A" & vcell.Row).ClearContents
End If
Next
Next
End If
Application.EnableEvents = True
End Sub

Ca renvois la date dans la colonne 1 si on écris dans la colonne 2 et ceux seulement a partir de la ligne 17.
Cachaflo - 3 avril 2011 à 22:58
Bonsoir,

cette macro m'intéresse, mais étant novice, je n'arrive pas à l'installer correctement sur mon classeur excel et je ne la retrouve pas.

Je m'explique, j'ai relifté notre planning horaire hebdomadaire en créant un classeur mensuel avec un onglet par semaine (soit 4 ou 5 onglets par mois).
Afin de comptabiliser le nombre hebdomadaire d'heures par poste de travail, j'ai déjà inséré une autre macro qui s'appelle SumByColor.
et votre macro me permettrait de dater automatiquement la validation des différents médecins.
Pourriez-vous m'aider?
j'avais déjà trouver la même solution que Bob, mais je souhaite également que la date ne se mette pas à jour automatique à chaque ouverture du classeur.
Question n°1: est-ce que je ne trouve pas votre macro car j'en ai déjà une autre?
sinon que faire?

Merci d'avance

Cachaflo
Ajouter un commentaire
Réponse
+0
moins plus
avec un macro excel !
Ajouter un commentaire
Ce document intitulé « [Excel] date automatique sans mise à jour » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?