Rejoignez
la communauté
Inscrivez-vous
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 
21 réponses
Réponse
+6
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 14Messages 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
Utilisateur anonyme - 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.
luffy - 17 juil. 2012 à 16:54
merci ca ma beaucoup aider !!!!!!!!!!! :)
Ajouter un commentaire
Réponse
+1
moins plus
Bonsoir,
tu remplaces le 1 par 2 et le "B" par "F"
cordialement
johannenzo 14Messages postés mardi 23 février 2010Date d'inscription 24 juillet 2011Dernière intervention - 31 janv. 2011 à 14:20
Bonjour cela fonctionne merci par compte j'ai une petite demande par soucis de perfection.
Quand je rentre un caractère dans la colonne B (2) la date s'affiche correctement dans la colonne F (6).
Cependant serait il possible d'apporter une modification a la macro pour que lorsque j'enlève le caractère dans la colonne B la date dans la colonne F disparaisse ???
Merci d'avance
Cordialement
JvDo 716Messages postés mercredi 27 juillet 2005Date d'inscription 12 février 2013Dernière intervention - 1 févr. 2011 à 04:21
Bonsoir,
Essaye avec ce code qui est plus complet car il gère l'effacement d'une sélection multizone .
Chez moi, ça fonctionne mais je n'ai pas cherché à tout tester.
Private Sub Worksheet_Change(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
                Range("F" & vcell.Row).Value = Now
            Else
                Range("F" & vcell.Row).ClearContents
            End If
        Next 
    Next 
End If 
Application.EnableEvents = True 
End Sub
Cordialement
Elea - 23 mars 2011 à 11:00
Génial,
Cela est très utile merci beaucoup,

Personnellement j'ai une dernière question pour que mon fichier puisse être tip top,

Que dois-je rajouter pour que la macro ne fonctionne que à partir de la ligne N ?
Vaucluse 10458Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 22 mai 2013Derniè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
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
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
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.

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.

Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Recevez notre newsletter
CCM JDN Droit-Finances Femme Linternaute Copains d'avant Santé-Médecine

Carte de voeux 2013, Cinéma, Décoration, Expeert, Horoscope, Salon littéraire, Programme TV, Cuisine (Recette), Coiffure, Restaurant, Test débit, Voyage, Hayatouki