Insertion date automatique à la saisie de données

Bonjour,

j'ai un tableau ou des personnes saisisses des heures réalisées pour des tâches

je souhaite que lorsque quelqu'un saisi des des heures dans ce tableau , soit saisi dans la case à côté de son nom la date de saisie

cette date doit se mettre à jour seulement lors d'une nouvelle saisie pour cette personne

pour faciliter les chose voici un fichier exemple de mon tableau

En vous remerciant d'avance pour les réponses que vous pourriez m'apporter

Bonjour. Bienvenue sur le Forum

Code de Feuille

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D5:D10,D12:D17,F5:F10,F12:F17,H5:H10,H12:H17")) Is Nothing Then
Colonne = Target.Column
Ligne = 3
Cells(Ligne, Colonne) = Date
End If
End Sub

Cordialement

532exemple-date-auto.zip (10.71 Ko)

Bonjour,

merci beaucoup pour cette réponse qui fonctionne très bien sur mon fichier test

Mon fichier de travail lui est beaucoup plus gros et comportes plusieurs onglets et les plages sont plus étendues, donc deux questions :

- si j'ai besoin de cette macro uniquement sur ma page suivi_heure, il me suffit juste de saisir cette macro dans la feuille suivi, il n'y a pas besoin de noter le nom de la feuille avant la liste des cellules dans la ligne If Not Application.Intersect(Target, Range("D5:D10,D12:D17,F5:F10,F12:F17,H5:H10,H12:H17")) Is Nothing Then ?

- ma liste de zone de saisie est bien plus grande : If Not Application.Intersect(Target, Range("I7:I6,I19:I28,I31:I40,I43:I52,I55:64,I67:I76,M7:M16,M19:M28,M31:M40,M43:M52,M55:M64,M67:M76,Q7:Q16,Q19:Q28,Q31:Q40,Q43:Q52,Q55:Q64,Q67:Q76,U7:U16,U19:U28,U31:U40,U43:U52,U55:U64,U67:U76,Y7:Y16,Y19:Y28,Y31:Y40,Y43:Y52,Y55:Y64,Y67:Y76,AC7:AC16,AC19:AC28,AC31:AC40,AC43:AC52,AC55:AC64,AC67:AC76,AG7:AG16,AG19:AG28,AG31:AG40,AG43:AG52,AG55:AG64,AG67:AG76,AK7:AK16,AK19:AK28,AK31:AK40,AK43:AK52,AK55:AK64,AK67:AK76,AO7:AO16,AO19:AO28,AO31:AO40,AO43:AO52,AO55:AO64,AO67:AO76,AS7:AS16,AS19:AS28,AS31:AS40,AS43:AS52,AS55:AS64,AS67:AS76")) Is Nothing Then

est-ce un problème?

Bonjour,

didousama a écrit :

- ma liste de zone de saisie est bien plus grande : If Not Application.Intersect(Target, Range("I7:I6,I19:I28,I31:I40,I43:I52,I55:64,I67:I76,M7:M16,M19:M28,M31:M40,M43:M52,M55:M64,M67:M76,Q7:Q16,Q19:Q28,Q31:Q40,Q43:Q52,Q55:Q64,Q67:Q76,U7:U16,U19:U28,U31:U40,U43:U52,U55:U64,U67:U76,Y7:Y16,Y19:Y28,Y31:Y40,Y43:Y52,Y55:Y64,Y67:Y76,AC7:AC16,AC19:AC28,AC31:AC40,AC43:AC52,AC55:AC64,AC67:AC76,AG7:AG16,AG19:AG28,AG31:AG40,AG43:AG52,AG55:AG64,AG67:AG76,AK7:AK16,AK19:AK28,AK31:AK40,AK43:AK52,AK55:AK64,AK67:AK76,AO7:AO16,AO19:AO28,AO31:AO40,AO43:AO52,AO55:AO64,AO67:AO76,AS7:AS16,AS19:AS28,AS31:AS40,AS43:AS52,AS55:AS64,AS67:AS76")) Is Nothing Then

est-ce un problème?

Non, mais c'est peu lisible...

Perso, je nomme la page avec le gestionnaire de nom : "saisie" et je sélectionne les cellules avec Ctrl, ce qui permet d'être plus dynamique au vue de l'évolution d'un fichier et cela évite de toucher la macro.

Ce qui donne, en reprenant la macro de amadéus.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("saisie")) Is Nothing Then
Colonne = Target.Column
Ligne = 3
Cells(Ligne, Colonne) = Date
End If
End Sub

Leakim

Effectivement cela est bien plus lisible et diminue grandement les erreurs de saisie des plages

je n'y avait pas pensée

merci beaucoup

Rechercher des sujets similaires à "insertion date automatique saisie donnees"