Différentes personnes saisissent les données de différentes manières. Lorsque vous entrez des informations dans une cellule, Excel essaie de déterminer le type d’informations que vous entrez. Si vous entrez un nombre tel que 08242020, Excel suppose que vous entrez une valeur numérique et la traite en conséquence. Que faire si le nombre que vous entrez est en fait une date, sans aucun séparateur? Excel peut-il comprendre ce que vous entrez?

Malheureusement, Excel ne peut pas. Pourquoi? Parce que vous ne lui avez donné aucune indication que cela devrait être une date. (Clés Excel sur les séparateurs, pas sur les valeurs numériques.) Si vous ou vos personnes de saisie de données ne pouvez pas modifier leurs habitudes de saisie afin que les séparateurs soient également saisis, vous aurez besoin d’une sorte de solution de contournement pour convertir les informations saisies en une valeur de date réelle .

Votre première pensée pourrait être que vous pourriez utiliser un format personnalisé pour afficher les informations. Considérez le format personnalisé suivant:

##"/"##"/"####

Ce format afficherait le numéro 08142020 en tant que 14/08/2020. Le seul problème est qu’il ne modifie que l’affichage du nombre – si vous souhaitez utiliser la date comme une vraie date Excel, vous ne pouvez pas le faire car vous n’avez pas converti la valeur en quelque chose qu’Excel reconnaît comme une date.

Si les valeurs entrées étaient très cohérentes dans leur format, et si elles étaient entrées sous forme de texte au lieu de valeurs numériques, il existe un moyen simple de les convertir en dates. Par très cohérent, je veux dire que l’entrée utilisait toujours deux chiffres pour le mois, deux pour le jour et quatre pour l’année. De plus, les cellules contenant les valeurs doivent être mises en forme sous forme de texte. Dans ce cas, vous pouvez suivre ces étapes:

  1. Sélectionnez la colonne de dates.

  2. Assurez-vous qu’il n’y a rien dans la colonne juste à droite des dates.

  3. Choisissez Texte en colonnes dans l’onglet Données du ruban dans le groupe Outils de données. Excel affiche l’assistant de conversion de texte en colonnes. (Voir la figure 1.)

  4. Sélectionnez l’option Largeur fixe, puis cliquez sur Suivant.

  5. Cliquez à nouveau sur Suivant.

  6. Dans la zone Format des données de colonne, choisissez Date.

  7. Sélectionnez la plage dans la zone Destination, puis dans la feuille de calcul, cliquez sur la cellule juste à droite de la première valeur que vous avez sélectionnée à l’étape 1.

  8. Cliquez sur Terminer.

Si tout s’est bien passé, Excel devrait avoir analysé les valeurs de texte en tant que dates et vous pouvez supprimer la colonne d’origine. Si cela ne fonctionne pas, cela signifie que les valeurs d’origine n’ont pas été formatées sous forme de texte ou que huit chiffres n’ont pas été utilisés pour saisir toutes les dates.

Une autre solution possible consiste à utiliser une formule pour convertir les valeurs saisies en dates réelles. Voici une de ces formules:

=DATE(RIGHT(A1,4),LEFT(A1,IF(LEN(A1) = 8,2,1)),LEFT(RIGHT(A1,6),2))

Cette formule suppose que la date saisie (celle sans séparateurs)

est dans la cellule A1. La formule fonctionnera avec des dates à sept ou huit chiffres.

Si vous préférez des fonctions personnalisées, vous pouvez en créer une dans VBA qui examine les données transmises, les convertit au format date / heure, puis renvoie le résultat. La fonction suivante est très polyvalente à cet égard; il fonctionnera avec les formats de date américains et européens:

Function DateTime(dblDateTime As Double, _   Optional bAmerican As Boolean = True)



' Converts Date and time "number" without ' delimiters into an Excel serial number (which ' can then be formatted with the Excel ' date/time formats)



' If optional argument is TRUE (or missing), ' function assumes value is of form:

'    [m]mddyyyy.hhmm  (leading "0" not required)



' If optional argument is FALSE, function ' assumes value is of form:

'    [d]dmmyyyy.hhmm  (leading "0" not required)



Dim iYear As Integer     Dim iMonth As Integer     Dim iDay As Integer     Dim iHour As Integer     Dim iMin As Integer

iYear = Int((dblDateTime / 10000 - _       Int(dblDateTime / 10000)) * 10000)

iDay = Int((dblDateTime / 1000000 - _       Int(dblDateTime / 1000000)) * 100)

iMonth = Int((dblDateTime / 1000000))

iHour = Int((dblDateTime - Int(dblDateTime)) * 100)

iMin = Int((dblDateTime  100 - _       Int(dblDateTime  100)) * 100 + 0.5)



If bAmerican Then         DateTime = DateSerial(iYear, iMonth, iDay)

Else         DateTime = DateSerial(iYear, iDay, iMonth)

End If

DateTime = DateTime + (iHour + iMin / 60) / 24 End Function

Cette fonction de macro suppose que les données qui lui sont transmises sont une valeur numérique, comme cela se produirait normalement lors de la saisie de dates sans séparateurs. (Reportez-vous à la logique à ce sujet au début du conseil.)

Comme vous pouvez le constater, il existe un certain nombre de solutions de contournement, mais aucune d’entre elles n’est aussi simple que d’entrer des séparateurs lors de la saisie des dates. S’il est difficile de former vous-même ou vos personnes chargées de la saisie de données à cette opération, vous pouvez envisager de configurer certaines règles de validation des données pour les cellules d’entrée. Ces règles peuvent vérifier que vous saisissez des informations en utilisant un format spécifique (comme une date avec des séparateurs) et vous arrêter si vous ne l’êtes pas. (La façon dont vous créez des règles de validation des données a été traitée dans d’autres numéros de ExcelTips.)

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (11400) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Entering_Dates_without_Separators [Saisie de dates sans séparateurs].