Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Date de mise à jour

18 réponses
Avatar
SANDRINE P.
Bonsoir à toutes et à tous,

Pouvez-vous, s’il vous plait, me préciser s’il est possible d’insérer dans
une feuille une "date de mise à jour" qui soit alimentée à chaque mise à jour
?

J’ai cherché dans le forum et sur l’aide Excel : je n’ai rien trouvé.
L’une ou l’un d’entre vous connaît-il une « formule » qui permette d’obtenir
cette date.

Je vous remercie d’avance de votre aide.
Bonne soirée.
Cordialement,
Sandrine

PS :
"mise à jour d'une feuille" et "mise à jour du fichier", est-ce lamême chose ?
Quand on met à jour une feuille, met-on à jour tout le classeur ?

8 réponses

1 2
Avatar
SANDRINE P.
Bonjour MichDenis,

Je te remercie beaucoup pour toutes tes explications qui sont claires et
précises.

J’ai effectivement une version Excel 2007.

J’ai appliqué tes conseils en choisissant l’option par défaut « Classeur
Excel prenant en charge les macros » à partir du gros bouton office.

PETITE QUESTION :
est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
les macros ?
Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
d’être correct.
Peux tu s’il te plaît, me le confirmer.

AUTRE PROBLEME :

- Hier, j’ai appliqué le code donné par Philippe, ça a très bien fonctionné.
- Aujourd’hui, j’ai voulu faire une nouvelle mise à jour : la date n’a pas
évolué.

- J’ai alors fait plusieurs tests et j’ai constaté que tant que l’on ne
ferme pas le fichier ça marche, même si on fait plusieurs mises à jour.
En revanche dès que l’on a fermé le fichier et qu’on y revient ça ne marche
plus.

Que faut-il faire pour que le code soit toujours actif ?

Je te remercie d’avance pour ton aide.
Je te souhaite une très bonne soirée.
Bien cordialement,
Sandrine



"MichDenis" a écrit :

Bonjour Sandrine,

Pour avoir le message suivant, tu as certainement une version Excel 2007.
Cette version possède diverses extensions de fichier dont ceux-ci :

xlsx - > sauvegarde seulement les feuilles de calcul
xlsm -> prend aussi en charge les macros

Si le fichier possède des macros et que tu veux conserver ces macros,
tu dois lors de l'enregistrement t'assurer lors de l'ouverture de la fenêtre
"Enregistrer sous" que la liste déroulante représentant le "type" de fichier"
indique : "Classeur Excel (prenant en charge les macros)(*.xlsm) avant
d'enregistrer ton fichier. À défaut, de le faire, Excel t'envoie le message
suivant pour t'avertir que si tu réponds "OUI", tes macros seront perdues.
Il aurait fallu que tu répondes "Non" et que tu fasses la modification du
type de fichier.
Si tu le désires, tu peux choisir cette option par défaut là :
Gros bouton office dans le coin supérieur gauche de l'application Excel
Options Excel
Onglet "Enregistrements"
Et dans la liste déroulante "Enregistrer les fichiers au format suivant", tu
sélectionnes dans la liste déroulante le "TYPE" de fichier par défaut que
tu aimerais lorsque la fenêtre "enregistrer sous" s'ouvre.

'------------------------------------------------
«Les fonctionnalités suivantes ne peuvent pas être enregistrées dans des
classeurs sans macro.
Projet VB
Pour enregistrer un fichier avec ces fonctionnalités, cliquez sur NON, puis
sélectionnez un type de fichier prenant en charge les macros.
Pour continuer à enregistrer en tant que classeur sans macro, cliquez sur
OUI »
'------------------------------------------------





Avatar
MichDenis
| PETITE QUESTION :
| est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
| cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
| les macros ?
| Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
| d’être correct.
| Peux tu s’il te plaît, me le confirmer.

*** La réponse est OUI.

*** Si tu veux pouvoir tes fichiers Excel 2003 et 2007
en alternance, tu dois installer le "pack de compatibilité d'office"
disponible sur le site de Microsoft disponible à cette adresse :
http://www.microsoft.com/downloads/details.aspx?familyid”1b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=fr

P.S- Il existe un Pack de mise à jour à ce pack de compatibilité.


| AUTRE PROBLEME :

De quel code parles-tu ? Et, Quelles sont tes attentes ?
Avatar
SANDRINE P.
Re bonsoir MichDenis,

Grand merci pour tes réponses à mon premier point.

Ce que j’appelle, sans doute improprement, code est l’exemple que Philippe
m’a donné.
J’ai collé cet exemple dans le module de la feuille souhaitée
(en ouvrant ledit module, par un clic droit sur l'onglet et "visualiser le
code").

Il s’agit de l’exemple suivant :

'inscrit la date du jour en a1 de la feuille contenant
' le code si un changement intervient dans la plage
' allant de b1 à d40
If Not Intersect(Target, Range("b1:d40")) Is Nothing _
Then [a1] = Date

- Le jour où j’ai collé l’exemple de Philippe, ça a très bien fonctionné.
- Le lendemain, j’ai voulu faire une nouvelle mise à jour : la date n’a pas
évolué.

- J’ai alors fait plusieurs tests et j’ai constaté que tant que l’on ne
ferme pas le fichier ça marche, même si on fait plusieurs mises à jour.
En revanche dès que l’on a fermé le fichier et qu’on y revient ça ne marche
plus.

Ce que je voudrais, c’est que l’exemple fonctionne dans tous les cas de
figure que j’aie ou non fermé le fichier.

Je te remercie d’avance pour ton aide ET TA PATIENCE.
Je te souhaite une très bonne soirée.
Bien cordialement,
Sandrine






"MichDenis" a écrit :

| PETITE QUESTION :
| est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
| cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
| les macros ?
| Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
| d’être correct.
| Peux tu s’il te plaît, me le confirmer.

*** La réponse est OUI.

*** Si tu veux pouvoir tes fichiers Excel 2003 et 2007
en alternance, tu dois installer le "pack de compatibilité d'office"
disponible sur le site de Microsoft disponible à cette adresse :
http://www.microsoft.com/downloads/details.aspx?familyid”1b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=fr

P.S- Il existe un Pack de mise à jour à ce pack de compatibilité.


| AUTRE PROBLEME :

De quel code parles-tu ? Et, Quelles sont tes attentes ?




Avatar
MichDenis
je crois que tu utilises l'une ou l'autre des macros événementielles
dans la feuille. Elles sont appelées "événementielles" car elles s''activent
suite à une action de l'usager.

Celle-ci s'exécute dès qu'une cellule de la feuille de calcul passe
en mode édition. Ce n'est pas obligatoire que le contenu de la
cellule soit modifié.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
'-------------------------------

Celle-ci est déclenchée dès qu'un usager sélectionne une cellule
de la feuille.
'-------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
'-------------------------------

Ce code s'il est actionné par une des macros événementielles
stipule que si la cellule active fait partie de la plage B1:D40, la
date de la journée sera inscrite dans la cellule A1
'---------------------------
If Not Intersect(Target, Range("b1:d40")) Is Nothing Then
Application.EnableEvents úlse
Range("A1") = Date
Application.EnableEvents úlse
End If
'---------------------------

Si tu ouvres ton fichier 25 fois dans la journée, la fonction "Date"
va toujours retourner la date du jour. Conséquence, tu ne verras
pas une différence en A1. Cependant, si tu fais une mise à jour
(tu dois effectuer une action qui déclenche la macro événementielle
que tu utilises), A1 va recevoir la date de la journée. Au lieu d'utiliser
la fonction "Date", tu peux utiliser la fonction "Now" qui ajoute l'heure
minutes et secondes en plus de la date de la journée.

Si tu obtiens un autre comportement que ce dernier, ou si tu veux
obtenir un résultat différent, tu devras expliciter davantage quel est
ton besoin.






"SANDRINE P." a écrit dans le message de groupe de
discussion :
Re bonsoir MichDenis,

Grand merci pour tes réponses à mon premier point.

Ce que j’appelle, sans doute improprement, code est l’exemple que Philippe
m’a donné.
J’ai collé cet exemple dans le module de la feuille souhaitée
(en ouvrant ledit module, par un clic droit sur l'onglet et "visualiser le
code").

Il s’agit de l’exemple suivant :

'inscrit la date du jour en a1 de la feuille contenant
' le code si un changement intervient dans la plage
' allant de b1 à d40
If Not Intersect(Target, Range("b1:d40")) Is Nothing _
Then [a1] = Date

- Le jour où j’ai collé l’exemple de Philippe, ça a très bien fonctionné.
- Le lendemain, j’ai voulu faire une nouvelle mise à jour : la date n’a pas
évolué.

- J’ai alors fait plusieurs tests et j’ai constaté que tant que l’on ne
ferme pas le fichier ça marche, même si on fait plusieurs mises à jour.
En revanche dès que l’on a fermé le fichier et qu’on y revient ça ne marche
plus.

Ce que je voudrais, c’est que l’exemple fonctionne dans tous les cas de
figure que j’aie ou non fermé le fichier.

Je te remercie d’avance pour ton aide ET TA PATIENCE.
Je te souhaite une très bonne soirée.
Bien cordialement,
Sandrine






"MichDenis" a écrit :

| PETITE QUESTION :
| est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
| cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
| les macros ?
| Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
| d’être correct.
| Peux tu s’il te plaît, me le confirmer.

*** La réponse est OUI.

*** Si tu veux pouvoir tes fichiers Excel 2003 et 2007
en alternance, tu dois installer le "pack de compatibilité d'office"
disponible sur le site de Microsoft disponible à cette adresse :
http://www.microsoft.com/downloads/details.aspx?familyid”1b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=fr

P.S- Il existe un Pack de mise à jour à ce pack de compatibilité.


| AUTRE PROBLEME :

De quel code parles-tu ? Et, Quelles sont tes attentes ?




Avatar
SANDRINE P.
"MichDenis" a écrit :

je crois que tu utilises l'une ou l'autre des macros événementielles
dans la feuille. Elles sont appelées "événementielles" car elles s''activent
suite à une action de l'usager.

Celle-ci s'exécute dès qu'une cellule de la feuille de calcul passe
en mode édition. Ce n'est pas obligatoire que le contenu de la
cellule soit modifié.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
'-------------------------------

Celle-ci est déclenchée dès qu'un usager sélectionne une cellule
de la feuille.
'-------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
'-------------------------------

Ce code s'il est actionné par une des macros événementielles
stipule que si la cellule active fait partie de la plage B1:D40, la
date de la journée sera inscrite dans la cellule A1
'---------------------------
If Not Intersect(Target, Range("b1:d40")) Is Nothing Then
Application.EnableEvents úlse
Range("A1") = Date
Application.EnableEvents úlse
End If
'---------------------------

Si tu ouvres ton fichier 25 fois dans la journée, la fonction "Date"
va toujours retourner la date du jour. Conséquence, tu ne verras
pas une différence en A1. Cependant, si tu fais une mise à jour
(tu dois effectuer une action qui déclenche la macro événementielle
que tu utilises), A1 va recevoir la date de la journée. Au lieu d'utiliser
la fonction "Date", tu peux utiliser la fonction "Now" qui ajoute l'heure
minutes et secondes en plus de la date de la journée.



&&&&&&&&&&&&

J'ai utilisé la seconde feuille événementielle avec la fonction "Now".

Dès la première information saisie, dans la plage, la date et heure se sont
affichées an A1 à la valeur : 22/06/2009 21:22:11.

5 minutes plus tard, sans avoir fermé mon fichier, j'ai fait une modifiction
dans la plage "B1:D40. L'heure n'a pas évolué alors que je m'attendais à ce
qu'elle passe à
22/06/2009 21:25.
&&&&&&&&&&&&&&&&&&&&&


Si tu obtiens un autre comportement que ce dernier, ou si tu veux
obtenir un résultat différent, tu devras expliciter davantage quel est
ton besoin.



&&&&&&&&&&&&&&&&&&&&&&
Bien cordialement,


Sandrine



"SANDRINE P." a écrit dans le message de groupe de
discussion :
Re bonsoir MichDenis,

Grand merci pour tes réponses à mon premier point.

Ce que j’appelle, sans doute improprement, code est l’exemple que Philippe
m’a donné.
J’ai collé cet exemple dans le module de la feuille souhaitée
(en ouvrant ledit module, par un clic droit sur l'onglet et "visualiser le
code").

Il s’agit de l’exemple suivant :

'inscrit la date du jour en a1 de la feuille contenant
' le code si un changement intervient dans la plage
' allant de b1 à d40
If Not Intersect(Target, Range("b1:d40")) Is Nothing _
Then [a1] = Date

- Le jour où j’ai collé l’exemple de Philippe, ça a très bien fonctionné.
- Le lendemain, j’ai voulu faire une nouvelle mise à jour : la date n’a pas
évolué.

- J’ai alors fait plusieurs tests et j’ai constaté que tant que l’on ne
ferme pas le fichier ça marche, même si on fait plusieurs mises à jour.
En revanche dès que l’on a fermé le fichier et qu’on y revient ça ne marche
plus.

Ce que je voudrais, c’est que l’exemple fonctionne dans tous les cas de
figure que j’aie ou non fermé le fichier.

Je te remercie d’avance pour ton aide ET TA PATIENCE.
Je te souhaite une très bonne soirée.
Bien cordialement,
Sandrine






"MichDenis" a écrit :

> | PETITE QUESTION :
> | est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
> | cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
> | les macros ?
> | Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
> | d’être correct.
> | Peux tu s’il te plaît, me le confirmer.
>
> *** La réponse est OUI.
>
> *** Si tu veux pouvoir tes fichiers Excel 2003 et 2007
> en alternance, tu dois installer le "pack de compatibilité d'office"
> disponible sur le site de Microsoft disponible à cette adresse :
> http://www.microsoft.com/downloads/details.aspx?familyid”1b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=fr
>
> P.S- Il existe un Pack de mise à jour à ce pack de compatibilité.
>
>
> | AUTRE PROBLEME :
>
> De quel code parles-tu ? Et, Quelles sont tes attentes ?
>
>



Avatar
MichDenis
Un petit fichier exemple : http://cjoint.com/?gwwaMNJuc1



"SANDRINE P." a écrit dans le message de groupe de
discussion :


"MichDenis" a écrit :

je crois que tu utilises l'une ou l'autre des macros événementielles
dans la feuille. Elles sont appelées "événementielles" car elles s''activent
suite à une action de l'usager.

Celle-ci s'exécute dès qu'une cellule de la feuille de calcul passe
en mode édition. Ce n'est pas obligatoire que le contenu de la
cellule soit modifié.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
'-------------------------------

Celle-ci est déclenchée dès qu'un usager sélectionne une cellule
de la feuille.
'-------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
'-------------------------------

Ce code s'il est actionné par une des macros événementielles
stipule que si la cellule active fait partie de la plage B1:D40, la
date de la journée sera inscrite dans la cellule A1
'---------------------------
If Not Intersect(Target, Range("b1:d40")) Is Nothing Then
Application.EnableEvents úlse
Range("A1") = Date
Application.EnableEvents úlse
End If
'---------------------------

Si tu ouvres ton fichier 25 fois dans la journée, la fonction "Date"
va toujours retourner la date du jour. Conséquence, tu ne verras
pas une différence en A1. Cependant, si tu fais une mise à jour
(tu dois effectuer une action qui déclenche la macro événementielle
que tu utilises), A1 va recevoir la date de la journée. Au lieu d'utiliser
la fonction "Date", tu peux utiliser la fonction "Now" qui ajoute l'heure
minutes et secondes en plus de la date de la journée.



&&&&&&&&&&&&

J'ai utilisé la seconde feuille événementielle avec la fonction "Now".

Dès la première information saisie, dans la plage, la date et heure se sont
affichées an A1 à la valeur : 22/06/2009 21:22:11.

5 minutes plus tard, sans avoir fermé mon fichier, j'ai fait une modifiction
dans la plage "B1:D40. L'heure n'a pas évolué alors que je m'attendais à ce
qu'elle passe à
22/06/2009 21:25.
&&&&&&&&&&&&&&&&&&&&&


Si tu obtiens un autre comportement que ce dernier, ou si tu veux
obtenir un résultat différent, tu devras expliciter davantage quel est
ton besoin.



&&&&&&&&&&&&&&&&&&&&&&
Bien cordialement,


Sandrine



"SANDRINE P." a écrit dans le message de groupe de
discussion :
Re bonsoir MichDenis,

Grand merci pour tes réponses à mon premier point.

Ce que j’appelle, sans doute improprement, code est l’exemple que Philippe
m’a donné.
J’ai collé cet exemple dans le module de la feuille souhaitée
(en ouvrant ledit module, par un clic droit sur l'onglet et "visualiser le
code").

Il s’agit de l’exemple suivant :

'inscrit la date du jour en a1 de la feuille contenant
' le code si un changement intervient dans la plage
' allant de b1 à d40
If Not Intersect(Target, Range("b1:d40")) Is Nothing _
Then [a1] = Date

- Le jour où j’ai collé l’exemple de Philippe, ça a très bien fonctionné.
- Le lendemain, j’ai voulu faire une nouvelle mise à jour : la date n’a pas
évolué.

- J’ai alors fait plusieurs tests et j’ai constaté que tant que l’on ne
ferme pas le fichier ça marche, même si on fait plusieurs mises à jour.
En revanche dès que l’on a fermé le fichier et qu’on y revient ça ne marche
plus.

Ce que je voudrais, c’est que l’exemple fonctionne dans tous les cas de
figure que j’aie ou non fermé le fichier.

Je te remercie d’avance pour ton aide ET TA PATIENCE.
Je te souhaite une très bonne soirée.
Bien cordialement,
Sandrine






"MichDenis" a écrit :

> | PETITE QUESTION :
> | est-ce que je peux faire nouvel un enregistrement du fichier enregistré avec
> | cette option sous le type de fichier « classeur excel 97- 2003, sans perdre
> | les macros ?
> | Apparemment oui : j’ai essayé et je n’ai pas perdu les macros. ça a l’air
> | d’être correct.
> | Peux tu s’il te plaît, me le confirmer.
>
> *** La réponse est OUI.
>
> *** Si tu veux pouvoir tes fichiers Excel 2003 et 2007
> en alternance, tu dois installer le "pack de compatibilité d'office"
> disponible sur le site de Microsoft disponible à cette adresse :
> http://www.microsoft.com/downloads/details.aspx?familyid”1b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=fr
>
> P.S- Il existe un Pack de mise à jour à ce pack de compatibilité.
>
>
> | AUTRE PROBLEME :
>
> De quel code parles-tu ? Et, Quelles sont tes attentes ?
>
>



Avatar
MichDenis
Il est possible que tu aies une macro qui désactive les macros événementielles
C'est à dire que la macro utilise la ligne de code :
Application.EnableEvents = False
et ne la remet pas à True à la fin de la macro.
Pour activer de nouveau les macros événementielles, tu copies cette
macro dans un module et tu l'exécutes :

'-----------------------------------------------
Sub Activer_Macros_événementielles()

Application.EnableEvents = True

End With
'-----------------------------------------------
Avatar
SANDRINE P.
Bonjour MichDenis,

J'ai appliqué tes dernières consignes.
ça marche !!
C'est super !!

TRES TRES GRAND MERCI :
- pour tes explications très claires
- pour tes solutions efficaces face aux difficultés que j'ai rencontrées
- pour ta disponibilité
- pour ta patience à mon égard.

Je te souhaite une très bonne après-midi.
Bien cordialement,
Sandrine.

"MichDenis" a écrit :

Il est possible que tu aies une macro qui désactive les macros événementielles
C'est à dire que la macro utilise la ligne de code :
Application.EnableEvents = False
et ne la remet pas à True à la fin de la macro.
Pour activer de nouveau les macros événementielles, tu copies cette
macro dans un module et tu l'exécutes :

'-----------------------------------------------
Sub Activer_Macros_événementielles()

Application.EnableEvents = True

End With
'-----------------------------------------------




1 2