Vous aimeriez inscrire la date de modification d'une ligne de votre tableau à chaque fois que vous en modifiez un de ses éléments.
Pour ce faire j'ai créé une toute petite macro, nommée Datation (en l'honneur du premier lecteur qui m'a posé cette question).
Télécharger le classeur avec la macro et placez cette dernière dans votre classeur "perso"
Cliquez ici pour télécharger Datation.xls
Utilisation de la macro datation
Il faut utiliser cette fonction, avec la fonction NBval() qui compte le nombre de valeurs inscrites dans un intervalle de cellule.
Dans mons exemple en D5 on inscrira :
=SI(NBVAL(A5:C5)>0;Datation();"")
S'il n'y a pas de donnée entre A5 et C5, la formule affiche du vide ("" = rien).
Sinon la fonction Datation est appelée ; elle renvoie la date et l'heure actuelle.
Attention : la suppression de lignes
ou de colonnes dans la feuille recalcule toutes les cellules.
N'utilisez donc cette fonction que sur une feuille dont ma présentation
est terminée.
Explication :
La fonction ne contient qu'une seule ligne. Cette ligne envoie la date et l'heure actuelle.
Function Datation() As Date
Datation = Now
End Function
Excel ne recalcule pas toutes les cellules à chaque modification dans une feuille. Il ne recalcule que ce qu'il faut. Cette fonction n'est appellée que lorsque NBval est recalculé, à savoir lorsqu'une des valeurs incluses dans le champ que vous avez défini est modifiée.
Pour juste avoir la date, il est encore plus facile de simplement mettre today() à la place de datation. En tout cas ca à l'air de marcher chez moi.
Merci pour le trucs en tout cas.
++
Rédigé par : adrileb | 12 juillet 2006 à 09:48
bonjour
ca marche, mais comment peut on inserer cette date de facon qu'elle ne se modifie plus par la suite? Des que je filtre, toutes les dates passent a la date du filtrage et je perds mes données. C'est possible de figer cette date?? Merci si vous avez une solution.
Rédigé par : bernard | 13 août 2006 à 16:40
Bonjour,
Je débute sous excel (ça fait 5 jours que je travaille sur un projet et j'ai déjà découvert pas mal de choses). Je cherche à savoir comment on peut insérer une date dans une fonction qui, une fois qu'elle est apparue, ne soit plus jamais modifiée. La macro créée me semble convenir parfaitement. Mais, malheureusement, je ne sais pas comment enregistrer la macro dans mon classeur personnel. Est-ce que vous pourriez m'expliquer cela?
Merci par avance;
Rédigé par : julien | 24 août 2006 à 13:17
svp le logiciel GESTMOY propose la gestion de notes de classe maisle nombre d'eleves est de 31 eleves alors que mes classes ont plus de 3i eleves
j'aimerais libererle nombre d'eleves
Rédigé par : jamal | 26 août 2006 à 01:21
Pas mal mais pourquoi ne pas taper simplement CTRL; dans la case en question (ou CTRL: pour l'heure).
Rédigé par : hypo | 11 janvier 2007 à 21:13
Super. Serait-il possible d'avoir aussi une colonne contenant la date de la première saisie ?
Bravo pour votre site
Rédigé par : Excel-addict | 26 mars 2007 à 22:41
j'ai été licenciée et je voudrais prouver mes heures suppléméentaires non payée en retrouver sur les tableaux excel que j'ai manipulés les dates et heures successives de modification. Est-ce possible ? si oui comment faire ?
Merci d'avance
Rédigé par : bourgin isabelle | 01 août 2007 à 10:43
Excellente macro...
cepandant des que l'on suprime une ligne ou en ajoute une.... toutes les dates de toutes les lignes se perdent !!!
dommage...quelqu'un a une solution pour regler ce probleme?
Merci !
Rédigé par : Vince | 25 octobre 2007 à 12:57
Ok, j'ai un peu de misère à comprendre les étapes à faire.
Je crois que la grosse raison est que ma version est française et que l'explication donnée est pour la version anglaise...
Peux-t-on m'aider?
Merci
Rédigé par : TheClerk | 14 novembre 2007 à 21:30
Ben non. Ma version est française.
Où avez-vous un problème ?
@+
XXL
Rédigé par : XXL | 14 novembre 2007 à 23:11
Finalement, je m'en suis sorti...
C'est que je comprenais mal la technique et j'essayais de créer une macro et ça ne fonctionnait pas.
J'ai ensuite pensé que c'était parce que les noms des fonctions étaient en anglais dans votre explication.
J'ai finalement compris que vous aviez créer une fonction personnalisée mais je ne savais comment faire.
J'ai trouvé la réponse ici :
http://www.top-assistante.com/bureau/excel/fonctionperso.php
J'ai appris comment créer cette fonction et la rendre disponible dans tous mes classeurs.
Merci, votre fonction est géniale!
Rédigé par : TheClerk | 15 novembre 2007 à 02:36
Vous aurriez pu trouver aussi là ;)
Des macros toujours disponibles ->
http://xxl-leblog.svmlemag.fr/2005/04/des-macros-touj.html
@+
XXL
Rédigé par : XXL | 15 novembre 2007 à 22:08
Je viens d'essayer cette dernière méthode.
Bien que ça fonctionne, la fonction s'appelle "Perso.xls!datation2() au lieu de simplement "datation2()...
[J'ai modifié le nom pour "datation2" étant donné que j'avais déjà créer "datation"].
Qu'est ce que j'aurais fait comme erreur selon vous?
De plus, de quelle façon puis-je effacer une fonction ainsi crée? Elle n'apparait plus dans les macros...
Merci
Rédigé par : TheClerk | 16 novembre 2007 à 14:00
Cette fonction est super cependant elle ne fonctionne pas des qu'on supprime une ligne ou en ajoute une. est ce normal? ou aurai je mal programmé la macro?
merci
Rédigé par : vince | 04 décembre 2007 à 12:06
Hélas, ce n'est pas vous qui avez mal programmé - ce serait plutôt moi.
Je le précise d'ailleurs dans l'article
Attention : la suppression de lignes ou de colonnes dans la feuille recalcule toutes les cellules. N'utilisez donc cette fonction que sur une feuille dont ma présentation est terminée.
Le gros avantage de cette fonction est d'être très simple. J'espère toujours que quelqu'un nous proposera une petite modif qui paliera ce (gros) défaut.
@+
XXL
Rédigé par : XXL | 04 décembre 2007 à 21:13
Je me permet de proposer ici une macro évènementielle à placer dans le code lié au classeur ("ThisWorkbook" par défaut) qui ajoute un commentaire à la cellule ou une nouvelle ligne au commentaire existant en y ajoutant un texte avec la date et l'heure de modification :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' When a cell is modified this macro inserts a comment to the cell with the date a time of the modification.
' If a comment is already existing, a newline will be added in the existing comment with date and time of modification
With Target
On Error Resume Next ' to avoid error if a comment is already existing
.AddComment
On Error GoTo 0
If .Comment.Text <> "" Then myExistingComment = .Comment.Text & vbCrLf Else myExistingComment = ""
.Comment.Text Text:=myExistingComment & "Modified on " & Date & " " & Time
.Comment.Shape.OLEFormat.Object.Font.Bold = False
.Comment.Shape.OLEFormat.Object.AutoSize = True
End With
End Sub
Rédigé par : CCROCHE | 23 janvier 2009 à 00:13