Posez votre question Signaler

[Excel] date automatique sans mise à jour

bob - Dernière réponse le 17 juil. 2012 à 16:54
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 
Réponse
+7
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
Répondre
thalys- 29 mai 2012 à 13:15
je souhaite mettre juste l'année toute seule sans jour mois
Répondre
Ajouter un commentaire
Réponse
+4
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.
Répondre
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.
Répondre
johannenzo 34Messages postés mardi 23 février 2010Date d'inscription 24 juillet 2011Dernière intervention - 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
Répondre
Rafaelyse 1Messages postés mercredi 6 juin 2012Date d'inscription 6 juin 2012Dernière intervention - 6 juin 2012 à 17:31
Je vais creer un programme de controle de dates d'esprirations de Produits a ma disposition.
Par exemple, j'ai le produit A que j'ai recu a trois reprises par des fournisseurs differents qui evidement aient differentes dates de Production et d'expirations. Je vais une aide pour creer un fichier de la moyenne de detection de la date d'expiration.
Merci pour ton aide JvDo.

Cordialement.
Répondre
luffy- 17 juil. 2012 à 16:54
merci ca ma beaucoup aider !!!!!!!!!!! :)
Répondre
Ajouter un commentaire
Réponse
+1
moins plus
Bonsoir,
tu remplaces le 1 par 2 et le "B" par "F"
cordialement
Vaucluse 14405Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 12 avril 2015Dernière intervention - 23 mars 2011 à 11:15
bonjour
juste mettre le N° de colonne (N) voulu à la place (2)
dans la ligne:
Set vtarget = Intersect(Target, Columns(2))
et bien sur remplacer ("F") par le nom de la colonne où vous voulez afficher le résultat;
crdlmnt
Répondre
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 ...
Répondre
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.
Répondre
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
Répondre
kévin- 29 juin 2012 à 10:15
Bonjour Elea,

je viens un peu tard sur le formu mais j'ai un petit soucis.
Voilà ta dernière macro est exactement celle qui me faut cependant je n'arrive pas à l'exécuter, oui je ne suis qu'un novice :)
Faut-il faire un simple copier coller dans VBA ?

Kévin
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je suis en train de réaliser une application sur excel pour un agriculteur qui gère des silos de stockage
Lors de l'élaboration du contrat, je souhaiterai que la date et l'heure se mettent automatiquement sans ajouter crtl + ":" ou crtl + "; pour faciliter l'utilisation de ce programme par l'agriculteur De plus, il faudrait qu'il n'y ait pas de mises à jour sur ces données. Pouvez vous m'aider?
Ajouter un commentaire
Réponse
+0
moins plus
Je ne vois qu'une solution : utiliser la fonction MAINTENANT() pour définir la date et l'heure, faire Copier puis Collage spécial Valeur, le tout sans changer de cellule.
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.