XL 2016 Mise à jour d'une valeur date SI modification du contenu dans le tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lgo_excel

XLDnaute Nouveau
Bonjour communauté Excel,
J'ai à nouveau besoin de vos connaissances, de votre aide.
J'aimerais (dans l'idéal...) avoir la possibilité de trouver uns solution à ma problématique : Mise à jour de la date contenue dans une cellule SI une des valeurs à l'intérieur d'une plage de cellules est modifiée et à l'enregistrement et réouverture du fichier Excel, la date change !
* En cellule H5, serait intégrée la date du jour avec fonction =AUJOURDHUI().​
* Si je modifie quelconque valeur dans la plage de cellules (C5:F16), et que j'enregistre le document Excel, alors à l'ouverture de celui-ci la date change en la date du jour de la modification.​

...mais peut-être que je m'y prend mal ou qu'il y a une possibilité de "tacler" le problème par un autre angle.

Aussi, je ne suis pas contre une Macro, mais il faudrait absolument que celle-ci soit automatique ! Comme il s'agit d'un fichier partagé sur un réseau informatique, tous les utilisateurs ne sont pas particulièrement au fait de ce qu'est une macro. Le fichier s'enregistrer en xlsm et demande l'activation de la Macro ! Ce message peut être déroutant pour certains utilisateurs novices...
MERCI pour vos lumières.

Regarde la pièce jointe 1085277
 
Dernière édition:
Solution
E
Bonjour Igo-excel,

Effectivement à ma connaissance on ne peut faire ce que tu demandes qu'en vba.
On va surveiller la plage qui t'intéresse et modifier la date si une cellule est modifiée (même si on se contente de valider sans changement).
A contrario, la date ne change pas si on touche à une cellule hors de cette plage définie.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("C4:f16")) Is Nothing Then Exit Sub
    Range("H5") = Now()
    
End Sub
Bonjour Igo-excel,

Effectivement à ma connaissance on ne peut faire ce que tu demandes qu'en vba.
On va surveiller la plage qui t'intéresse et modifier la date si une cellule est modifiée (même si on se contente de valider sans changement).
A contrario, la date ne change pas si on touche à une cellule hors de cette plage définie.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("C4:f16")) Is Nothing Then Exit Sub
    Range("H5") = Now()
    
End Sub
 

Pièces jointes

Merci Exl-Noob. C'est exactement ce que je pensais avec la ligne de commande VBA "
If Intersect(Target, Range("C4:f16")) Is Nothing Then Exit Sub Range("H5") = Now() " que j'avais glané lors de visite sur d'autres forum.
Ma lecture : Si qqchose se passe dans la plage de cellules C4:C16 alors la date contenue dans H5 change à aujourd'hui. Si rien ne change alors Exit.

Je me contenterai de cette solution, mais comme je l'ai dit, bcp de collaborateurs ne sauront pas qu'il faut (à l'ouverture du fichier) répondre à 2 messages d'activation de contenus et de macros !

Je laisse à d'autres de regarder s'ils ont une autre solution.
Merci de ta réactivité Exl-Noob.
 
Bonjour,
je me permets de relancer ce sujet, qui m'a bien aidé dans ma recherche.
Le code fonctionne très bien mais j'aimerai l'appliquer sur différentes plages de cellules pour qu'il modifie différentes cellules. Ci-dessous l'exemple

1679997878029.png


Merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
289
Retour