Bill est confronté au défi d’importer des données dans Excel qui ont été créées à l’origine dans d’autres applications. Le problème est que les données contiennent beaucoup de dates, mais elles sont dans un format qu’Excel ne comprend pas. Par exemple, les dates peuvent être au format 01.15.11 ou 1.15.2011, aucun des deux n’étant traité comme une date par Excel. Bill souhaite savoir comment convertir les dates non standard dans un format de date compris par Excel.

Si les dates sont dans le même format de séquence que vous utilisez dans vos paramètres régionaux, la conversion est un jeu d’enfant. Par exemple, si vos paramètres régionaux utilisent le format de date MDY (mois suivi du jour suivi de l’année) et que la date que vous importez est dans le même format, vous pouvez simplement sélectionner les cellules et remplacer les périodes par une barre oblique. Lorsque Excel change du 1.15.2011 au 15/01/2011, il analyse automatiquement le résultat sous forme de date.

Si le format que vous importez ne correspond pas à vos paramètres régionaux, vous devez mélanger la date dans le même format. Par exemple, si la date que vous importez est le 01.10.11 (10 janvier 2011) et que votre système l’interprète comme le 1er octobre 2011, le moyen le plus simple est de séparer la date en composants individuels, puis de les remettre ensemble. Suivez ces étapes générales:

  1. Insérez trois colonnes vides à droite de la colonne de date.

  2. Sélectionnez les cellules contenant les dates non standard.

  3. À l’aide de l’Assistant Texte en colonnes (Données | Texte en colonnes), choisissez des données délimitées et utilisez un point comme délimiteur. Une fois l’assistant terminé, vous vous retrouvez avec trois colonnes contenant le mois, le jour et l’année.

  4. Dans la colonne vide restante, entrez une formule telle que la suivante:

  5. Copiez la formule dans d’autres cellules à côté des dates.

  6. Sélectionnez les cellules contenant les formules que vous venez de créer, puis appuyez sur Ctrl + C.

  7. Utilisez Collage spécial pour convertir les formules en résultats. (Sélectionnez l’option Valeurs lorsque vous utilisez Collage spécial.)

  8. Supprimez les trois colonnes contenant les dates séparées et conservez la colonne contenant les dates finales.

Une autre solution consiste simplement à utiliser une macro pour effectuer la conversion. Voici une fonction définie par l’utilisateur qui prend la date non standard et la convertit en une valeur de date correctement formatée. La macro bascule également autour de la position du mois et du jour, comme cela est fait dans la technique Texte en colonnes.

Public Function Convert_Date(A As String) As Date     Dim K As Long     Dim K1 As Long     Dim K2 As Long

K = Len(A)

K1 = InStr(1, A, ".")

K2 = InStr(K1 + 1, A, ".")

Convert_Date = DateSerial(Val(Mid(A, K2 + 1, _       K - K2 + 1)), Val(Mid(A, K1 + 1, K2 - K1)), _       Val(Mid(A, 1, K1 - 1)))

End Function

_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 (3191) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Parsing_Non-Standard_Date_Formats [Analyse des formats de date non standard].