Besoin de la date d'aujourd'hui pour remplir automatiquement une cellule lorsque les données sont entrées dans une autre cellule

J'aimerais que les cellules C5-C39 remplissent automatiquement la date d'aujourd'hui lorsque les données sont entrées dans les cellules B5-B39.

J'ai essayé de l'utiliser en utilisant =TODAY() mais ne pas comment structurer la formule.

Je dirais que la manière la plus simple de le faire serait une fonction définie par l'utilisateur. Cette fonction sera mise à jour lorsque toute cellule faisant référence à la modification, vous ne devrez donc pas l'associer à aucun événement.

Une fonction pour votre problème serait:

 Function Updating_Date(dependent_cell as Range) As Date Updating_Date = Date End Function 

Après avoir mis ce code dans un module dans votre classeur, vous pouvez simplement entrer =Updating_Date(B5) dans C5 , puis le copier. Cela devrait rendre la date dans C5 mise à jour chaque fois que les valeurs de la colonne C changent.

Pour que la date n'apparaisse que si la cellule de la colonne B n'est pas vide, vous pouvez appliquer une formule if dans la cellule dans la colonne C, car j'ai abordé l'autre question que vous avez posée . Entrez simplement le même condition que je l'ai montré (c'est-à-dire ISBLANK(B5) ) et que la valeur de retour soit une chaîne vide ( "" ) si la condition est vraie et l'UDF ( Updating_Date(B5) ) si la condition est fausse .

Ce qui suit met la date d'aujourd'hui dans la cellule "B" chaque fois qu'il y a un changement dans la cellule "A":

 Private Sub Worksheet_Change(ByVal Target As Range) ' Auto Date Dim Cell As Range For Each Cell In Target If Cell.Column = Range("A:A").Column Then If Cell.Value <> "" Then Cells(Cell.Row, "B").Value = Int(Now) Else Cells(Cell.Row, "B").Value = "" End If End If Next Cell End Sub 

Ce code doit être placé dans le module VBA pour la feuille de calcul où vous souhaitez que ce comportement se produise.

AFIK, vous devrez le faire via VBA. Vous pouvez créer une fonction qui surveillera les changements sur votre feuille de calcul, filtrera uniquement les modifications sur les cellules B5-B39 et mettra à jour les cellules en C en conséquence.

MISE À JOUR: Vous allez probablement savoir entrer dans VBA en utilisant alt-F11.

Double-cliquez sur l'objet Excel appelé Sheet1 ou n'importe quelle feuille qui vous intéresse (dans l'arborescence en haut à gauche) pour accéder au code de cette feuille.

Sélectionnez la feuille de calcul et modifiez les 2 menus déroulants. Donc, vous obtenez un code qui ressemble à:

 Private Sub Worksheet_Change(ByVal Target As Range) End Sub 

La variable "Cible" est maintenant disponible, qui est une référence à la cellule qui change.

Ajoutez un code entre ces lignes:

 debug.Print Target 

Et appuyez sur ctrl-G pour afficher la fenêtre immédiate

Effectuez des modifications dans la feuille de calcul et revenez au code, vous verrez que les données que vous avez entrées apparaissent dans la fenêtre immédiate.

Maintenant, modifiez le code pour indiquer if Target. Et vous verrez une liste déroulante des propriétés possibles qui se rapportent à la variable cible.

Avec quelques changements, vous pouvez obtenir ceci:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And (Target.Row > 4 And Target.Row < 40) Then Debug.Print Target.Value End If End Sub 

Ce qui imprime maintenant uniquement des modifications dans la gamme qui vous intéresse.

Si vous souhaitez savoir comment modifier une valeur dans une cellule, vous pouvez enregistrer une macro de votre démarche manuelle et examiner le code. J'espère que vous avez assez pour continuer maintenant. Faites-moi savoir si non.