Excel formation - Page de vente TCd - 11 Découvrez la méthode complète pour analyser les données efficacement et sans effort avec les tableaux croisés dynamiques, en cliquant ici

4 METHODES POUR INSERER LA DATE DU JOUR RAPIDEMENT DANS UNE CELLULE SUR EXCEL (avec et sans VBA)

Dans ce tutoriel, je vais dans un premier temps vous montrer les différentes méthodes qui permettent d’insérer automatiquement la date du jour, ainsi que l’heure actuelle dans une cellule Excel. Puis dans une seconde partie, nous verrons comment enregistrer les heures de réalisation des évènements intervenant sur le classeur (enregistrement, ouverture, impression,...)

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

Partie 1 : 4 METHODES POUR INSERER LA DATE DU JOUR RAPIDEMENT DANS UNE CELLULE SUR EXCEL (avec et sans VBA) (voir le tutoriel)

Partie 2 : ENREGISTRER LES HEURES DE REALISATION DES EVENEMENTS SUR LES FEUILLES EXCEL (voir le tutoriel)

 

1. Les formules AUJOURDHUI() et MAINTENANT()

TÉLÉCHARGER LE SUPPORT DE CE COURS

Vous trouverez très régulièrement de nouvelles vidéos sur la chaîne, alors pensez à vous abonner pour ne manquer aucune astuce et devenir rapidement un pro d’Excel (cliquez-ici) !

______________________________________________

La méthode la plus simple pour insérer la date du jour dans une cellule est d’utiliser la fonction dédiée d’EXCEL : il s’agit de la fonction AUJOURDHUI().

Celle-ci se contente de renvoyer simplement la valeur qui correspond, et a pour particularité de ne nécessiter aucun argument !

 

 =AUJOURDHUI() 

 

Excel formation - date et heure rapide - 01

Et voici le résultat :

Excel formation - date et heure rapide - 02

Comme vous pouvez le constater, EXCEL en plus de simplement valider le résultat de la formule en a également déduit qu’il s’agissait d’une date et adapté le formatage de la cellule afin de faire apparaître celle-ci sous le bon format (jj/mm/aaaa).

Une autre particularité de la formule AUJOURDHUI(), c’est que celle-ci est dynamique ! En d’autres termes, celle-ci va s’actualiser à chaque recalcul ou ouverture du classeur.

Excel formation - date et heure rapide - 03

Ici, nous avons simplement ouvert le classeur le lendemain pour constater que la date insérée dans la cellule a été modifiée !

Il existe encore une autre fonction, qui permet tout comme la fonction AUJOURDHUI() de récupérer la date du jours, mais qui en plus affiche l’heure. Il s’agit de la fonction MAINTENANT() :

 

 =MAINTENANT() 

 

Ici encore la fonction MAINTENANT() n’attend aucun argument pour fonctionner, et le format appliqué à la cellule permet de visionner simplement le résultat avec le formatage adéquat :

Excel formation - date et heure rapide - 04

 

2. Construire une formule AUJOURDHUI() non dynamique

Parfois il se peut que le caractère dynamique de la fonction AUJOURDHUI() ne corresponde pas au résultat souhaité.

En effet, imaginons que nous souhaitions insérer la date du jour et l’heure dans une cellule afin de dater le début de remplissage d’un document.

Si nous travaillons plusieurs jours sur ce même document, nous ne souhaiterons évidemment pas que la valeur de cette cellule s’actualise lors de chacune de ces journées.

Malheureusement, le fonctionnement de la fonction AUJOURDHUI() (tout comme la fonction MAINTENANT()), ne permet pas d’arriver à ce résultat, celles-ci n’acceptant aucun paramètre.

Nous allons donc devoir construire notre propre fonction personnalisée, en la développant en VBA.

Pas d’inquiétude, nous verrons que celle-ci ne soulève aucune difficulté particulière, même pour les plus grands débutants de VBA. Mais bien évidemment si vous souhaitez apprendre à maîtriser le langage VBA, je vous invite à suivre la formation gratuite d’excelformation.fr en suivant ce lien.

Pour commencer, nous lançons l’éditeur de code VBA, en utilisant une des 13 méthodes que nous avons détaillé dans le chapitre 8 : « COMMENT LANCER UNE MACRO VBA », par exemple cliquant sur le bouton Visual Basic du menu développeur :

Excel formation - date et heure rapide - 05

Ensuite nous insérons un nouveau module dans lequel nous saisirons la fonction qui sera ainsi accessible dans l’ensemble des feuilles de calcul du classeur (Menu Insertion > Module) :

Excel formation - date et heure rapide - 06

Et enfin, nous créons la fonction personnalisée, en utilisant le mot-clé Function suivi du nom de la fonction (ici nous l’appellerons AUJOURDHUI_STATIC) :

Function AUJOURDHUI_STATIC()
End Function

Nous validons la création de la fonction en appuyant simplement sur la touche [Entrée] du clavier.

L’éditeur va alors ajouter automatiquement les parenthèses en fin de ligne, ainsi que la commande End Function qui permet de terminer celle-ci !

En VBA, l’équivalent de la fonction EXCEL MAINTENANT() est la fonction Now.

Nous n’avons donc besoin que d’une seule ligne d’instruction qui consiste à appliquer la valeur retournée par Now sur la fonction personnalisée, et pour cela nous utilisons simplement le symbole d’égalité (« = ») :

Function AUJOURDHUI_STATIC()
    AUJOURDHUI_STATIC = Now
End Function

Ensuite, pour utiliser la fonction dans la feuille calcul, nous procédons comme pour n’importe quelle autre fonction (nous tapons simplement le symbole égal, suivi du nom de la fonction) :

Excel formation - date et heure rapide - 07

Puis nous validons en appuyant sur la touche [Entrée] du clavier :

Excel formation - date et heure rapide - 08

Ensuite, nous pouvons relancer le calcul de la feuille de calcul en appuyant sur la touche [F9] du clavier afin de constater que la cellule ne sera pas modifiée, au contraire de la cellule située juste au-dessus qui contient la fonction AUJOURDHUI() :

Excel formation - date et heure rapide - 09

Pour forcer l’actualisation de la valeur, il suffit de cliquer dans la barre des formules (ou d’appuyer sur la touche [F2]), puis de valider à nouveau la formule en appuyant une fois encore sur la touche [Entrée] du clavier :

Excel formation - date et heure rapide - 10

 

3. Créer un bouton pour insérer la date

Maintenant voyons une nouvelle méthode pour insérer automatiquement la date du jour dans la cellule active, en cliquant cette fois-ci simplement sur un bouton présent dans la feuille de calcul !

Pour cela, commençons par insérer le bouton en question en dessinant un simple rectangle (menu Insertion > Formes > Rectangle) :

Excel formation - date et heure rapide - 11

Après avoir dessiné le rectangle, nous effectuons un clic-droit, afin de choisir l’option Modifier le texte, ce qui nous permet d’afficher un texte sur le bouton :

Excel formation - date et heure rapide - 12

Ensuite, nous revenons dans l’éditeur de code pour y insérer la procédure suivante, juste en dessous de la fonction personnalisée que nous avons saisie dans la partie précédente :

Sub insererDateEtHeure()
    ActiveCell = Now
End Sub

Celle-ci se contente d’entrer la valeur retournée par la fonction Now (la date et l’heure actuelle) directement dans la cellule active, elle-même récupérée par ActiveCell.

Il suffit ensuite de lier le bouton à cette macro en effectuant un nouveau clic-droit, pour cette fois-ci sélectionner Affecter une macro.

Et dans la fenêtre qui s’affiche, nous choisissons la nouvelle macro en double-cliquant sur son nom :

Excel formation - date et heure rapide - 13

À présent, il suffit de sélectionner une cellule, puis de cliquer sur le bouton « Insérer la date et l’heure » pour saisir directement la valeur de la date et de l’heure dans la cellule :

Excel formation - date et heure rapide - 14

Pour n’obtenir que la date, il suffit de modifier le formatage de la cellule (par exemple en Date courte) :

Excel formation - date et heure rapide - 15

 

4. Insérer la date en une fraction de seconde avec les raccourcis clavier !

Je ne le répèterai jamais assez, mais les raccourcis claviers permettent de gagner énormément de temps !

Et comme nous l’avions déjà découvert dans l’article dédié, il se trouve justement qu’Excel propose deux raccourcis claviers qui permettent d’insérer la date dans une cellule :

  • Insérer la date : utilisez la combinaison [Ctrl]+[;]
  • Insérer l’heure : utilisez la combinaison [Ctrl]+[:]

Excel formation - date et heure rapide - 16

Comme la méthode précédente, ces raccourcis clavier permettent d’insérer la date « en dure » dans la cellule et donc de ne pas la mettre à jour d’une ouverture ultérieure.

 

5. Horodater les évènements importants du classeur

TÉLÉCHARGER LE SUPPORT DE CE COURS

Vous trouverez très régulièrement de nouvelles vidéos sur la chaîne, alors pensez à vous abonner pour ne manquer aucune astuce et devenir rapidement un pro d’Excel (cliquez-ici) !

______________________________________________

Maintenant que nous avons vu en détail comment insérer dynamiquement la date du jour ainsi que l’heure actuel dans une cellule, voyons comment exploiter cela pour enregistrer dans une feuille de calcul tous les évènements importants intervenant au sein d’un classeur.

Pour cela, nous allons exploiter le classeur mis en place au cours des parties précédentes (que je vous invite à télécharger en vous rendant en haut de cet article).

Excel formation - date et heure rapide - 17

Pour commencer créons une nouvelle feuille de calcul au sein de ce classeur en cliquant simplement sur le petit bouton plus en bas à gauche :

Excel formation - date et heure rapide - 18

Appelons cette feuille : « logs » :

Excel formation - date et heure rapide - 19

Ensuite, nous saisissons simplement un titre à cette feuille de calcul, ainsi que les titres des deux colonnes du tableau dans lequel nous insèrerons nos relevés d’évènement :

Excel formation - date et heure rapide - 20

Pour insérer simplement des entrées dans ce tableau, nous allons le convertir en tableau de donnée (pour connaître tous les avantages des tableaux de données, je vous invite à suivre le tutoriel dédié sur excelformation.fr en cliquant ici).

Pour créer le tableau, nous sélectionnons simplement une des deux cellules de titre, puis nous nous rendons dans le menu Insertion du ruban > Tableau :

Excel formation - date et heure rapide - 21

Excel nous affiche alors la fenêtre suivante :

Excel formation - date et heure rapide - 22

Dans cette fenêtre, nous retrouvons les coordonnées du tableau, puis nous cochons la case Mon tableau comporte des en-têtes afin de spécifier à Excel que les deux cellules correspondantes sont effectivement des cellules de titres.

Enfin, nous validons la création du tableau en appuyant sur le bouton [OK] :

Excel formation - date et heure rapide - 23

À ce moment-là, nous nous retrouvons effectivement avec un nouveau tableau de données structurées, qui évidemment ne contient encore aucune ligne en dehors de la ligne des titres de colonne.

Il ne nous reste plus qu’à donner un nom clairement explicite à ce tableau, afin de pouvoir le remplir simplement à partir de VBA (menu Création du ruban, qui n’apparaît que lorsqu’une des cellule du tableau est sélectionnée, puis saisir le nom dans la zone de saisie située tout à gauche, et enfin nous validons le nom en appuyant sur la touche [Entrée] du clavier) :

Excel formation - date et heure rapide - 24

Et voilà, notre tableau est maintenant prêt à être alimenté à partir des différents évènements importants intervenants sur la feuille de calcul.

En VBA, un événement permet de lancer automatiquement une ou plusieurs instructions lorsque quelque chose se passe au sein d’un classeur ou plus particulièrement dans une feuille de calcul.

Pour connaître l’ensemble des évènement à disposition, rendons nous dans le code du classeur au sein de VBE en double cliquant sur l’objet ThisWorkbook à partir de la fenêtre d’exploration du Projet :

Excel formation - date et heure rapide - 25

Si la fenêtre d’exploration du projet n’est pas affichée, rendez-vous dans le menu Affichage afin de cliquer sur le menu Explorateur de projets :

Excel formation - date et heure rapide - 26

Cela étant fait, nous choisissons l’option Workbook depuis le premier menu déroulant situé au-dessus de la feuille de code :

Excel formation - date et heure rapide - 27

Et ensuite, nous pouvons découvrir tous les évènements disponibles directement depuis le second menu :

Excel formation - date et heure rapide - 28

Le premier évènement qui va nous intéresser est l’évènement Open. Celui-ci sera en effet instancié à chaque fois que le classeur va être ouvert.

Nous cliquons simplement sur Open et la procédure suivante va alors s’ajouter automatiquement dans la feuille de code :

 

Private Sub Workbook_Open()
     
End Sub

 

Et c’est à l’intérieur de cette procédure que nous allons maintenant pouvoir saisir les lignes de code qui vont nous permettre d’enregistrer l’heure d’ouverture du fichier.

Pour cela, nous utilisons simplement l’instruction ListRows.Add depuis le tableau structuré que nous avions appelé _logs.

Voici la ligne de code à ajouter dans l’évènement Workbook_Open :

 

    With  Sheets("logs").ListObjects("_logs").ListRows.Add
            .Range(1) = "Ouverture du classeur"
            .Range(2) = Now
    End With

 

Si cette partie de code vous parait relativement obscure, ne vous en faites pas, nous reviendrons très bientôt sur la gestion des tableaux structurés depuis VBA dans un tutoriel.

À présent, nous pouvons tester l’évènement, en relançant le fichier de travail (après avoir évidemment enregistré celui-ci avant de le fermer).

Comme vous pouvez alors le constater, l’heure d’ouverture a bien été enregistrée :

Excel formation - date et heure rapide - 29

Ensuite, nous pouvons répéter l’opération pour les autres évènements :

  • Enregistrer les heures d’enregistrement : Workbook_BeforeSave
  • Lancement d’une impression : Workbook_BeforePrint
  • Fermeture du classeur : Workbook_BeforeClose

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)
        With  Sheets("logs").ListObjects("_logs").ListRows.Add
            .Range(1) = "Fermeture du classeur"
            .Range(2) = Now
        End With
    End Sub
     
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        With Sheets("logs").ListObjects("_logs").ListRows.Add
            .Range(1) = "Impression"
            .Range(2) = Now
        End With
End Sub
     
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,  Cancel As Boolean)
        With  Sheets("logs").ListObjects("_logs").ListRows.Add
            .Range(1) = "Enregistrement du classeur"
            .Range(2) = Now
        End With
End Sub

 

Pour aller encore un niveau plus loin, nous pouvons également enregistrer le nom de la personne qui effectue l’opération.

Pour cela, nous commençons par ajouter une troisième colonne dans notre tableau que nous appelons Utilisateur :

Excel formation - date et heure rapide - 30

Puis, dans chacun des évènements, nous ajoutons la ligne suivante qui permet d’enregistrer dans cette troisième colonne le nom de l’utilisateur :

 

        .Range(3) = Application.UserName

 

Excel formation - date et heure rapide - 31

Il est également possible d’enregistrer des évènements en rapport non plus avec le classeur, mais plus spécifiquement sur une feuille de calcul.

Par exemple, supposons que nous voulions logger les modifications intervenant sur la cellule de la feuille

Cette fois-ci, nous récupérons l’évènement propre à cette feuille en cliquant sur celle-ci depuis l’explorateur de projets :

Excel formation - date et heure rapide - 32

Puis, nous sélectionnons l’évènement Change de l’objet Worksheet :

Excel formation - date et heure rapide - 33

Cet évènement Worksheet_Change est vraiment bien conçu, car celui nous transfert une variable Target qui contient la ou les cellules qui ont subi le changement :

 

Private Sub Worksheet_Change(ByVal Target As Range)
    End Sub

 

Pour commencer, nous allons pouvoir analyser celle-ci afin de contrôler qu’il s’agisse bien de la cellule B15 qui nous intéresse :

 

If Target = Range("b15") Then
        End If

 

Et seulement lorsque tel est le cas, nous pourrons enregistrer l’heure de la modification, exactement comme nous l’avons fait juste avant :

 

Private Sub Worksheet_Change(ByVal Target As Range)
        If Target = Range("b15") Then
            With  Sheets("logs").ListObjects("_logs").ListRows.Add
                .Range(1) = "Modification de la cellule  B15"
                .Range(2) = Now
                .Range(3) = Application.UserName
            End With
        End If
    End Sub

 

Excel formation - date et heure rapide - 34

Si en revanche, nous souhaitons connaître les heures de toutes les modifications, alors il suffirait de retirer le test If et d’enregistrer les coordonnées de la cellule modifiée grâce à la propriété Adresse de la variable Target (qui est bien évidemment typée en tant que Range) :

 

    With  Sheets("logs").ListObjects("_logs").ListRows.Add
            .Range(1) = "Modification de la cellule "  & Target.Address
            .Range(2) = Now
            .Range(3) = Application.UserName
        End With

 

 

Excel formation - date et heure rapide - 35



Articles qui pourraient vous intéresser

Comment créer une zone d’impression dynamique et intelligente sur Excel
Comment supprimer les lignes vides ou avec des cellules vides d’un tableau sur Excel
Comment géolocaliser une adresse sur Google Maps en 1 clic avec Excel
Comment calculer le taux de rendement interne d’un projet sur Excel (fonction TRI)
Comment envoyer la sélection par mail en 1 clic avec VBA sur Excel
Comment afficher plusieurs onglets d'un même classeur grâce au multi-fenêtrage d'Excel
Comment convertir des CSV en fichier Excel en masse (tous les fichiers d’un répertoire) avec VBA
6 Astuces pour envoyer facilement un fichier Excel par mail (sans VBA)
3 méthodes pour transformer un texte en majuscule (ou en minuscule) sur Excel
Comment remplacer automatiquement des données (mots, lettres, nombres,…) sur Excel
MISE EN FORME CONDITIONNELLE SUR UN GRAPHIQUE EXCEL
COMMENT DUPLIQUER 500 FOIS (OU PLUS !) UNE FEUILLE DE CALCUL EXCEL EN 1 CLIC

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.