Debbie a une feuille de calcul qui contient de nombreuses dates. Pour concaténer les données avec les dates, elle doit éditer chaque cellule qui contient une date et ajouter une apostrophe avant la date. Elle se demande s’il existe un moyen rapide de le faire. Elle a essayé de mettre en évidence la ligne et de la mettre en forme sous forme de texte, mais cela n’a pas fonctionné.

Si Debbie veut automatiser le travail manuel qu’elle effectue, cela pourrait être fait avec une macro. Ce qui suit convertit automatiquement les cellules sélectionnées en texte et remplit la date dans la cellule.

Sub DateToText()

Dim cell As Range     Dim sTemp As String

For Each cell In Selection         With cell             sTemp = .Text             .NumberFormat = "@"

.Value2 = sTemp         End With     Next cell End Sub

Notez l’utilisation de la propriété .Value2 au lieu de la propriété .Value lors du remplissage du texte dans la cellule. Ceci est fait pour s’assurer qu’Excel ne convertit pas par inadvertance le texte en une valeur de date. Il ne devrait pas le faire de toute façon, mais la propriété .Value2 ne prend pas en charge le type de données Date, donc toute conversion potentielle est, par nature, exclue.

Vous devez également noter que la macro convertira tout ce que vous avez sélectionné, même si elle ne contient pas de date. Vous voudrez vous assurer de ne sélectionner que les cellules contenant des dates avant de l’exécuter.

Bien sûr, le moyen le plus simple de faire ce que Debbie essaie de faire est d’utiliser la fonction de feuille de calcul TEXT. Supposons, par exemple, que la cellule A1 contienne une date. Dans une autre cellule, vous vouliez mettre les mots « La date limite est » avant la date. Vous pouvez le faire avec une formule comme celle-ci:

="The deadline is " & TEXT(A1, "mmmm d, yyyy")

Notez que la fonction TEXTE nécessite deux paramètres: La cellule à convertir (A1, dans ce cas) et un modèle à utiliser dans la conversion (« mmmm j, aaaa »). Si la cellule A1 contient une date telle que 25/06/16, alors la formule renvoie la suivante:

The deadline is June 25, 2016

Le modèle que vous spécifiez, entre guillemets, suit de très près les modèles que vous utiliseriez pour définir un format personnalisé pour une cellule. Par exemple, « mmm » renvoie un nom de mois à trois caractères tandis que « mmmm »

renvoie un nom de mois entièrement épelé. Les codes que vous utiliseriez dans le modèle ont été traités dans d’autres ExcelTips, mais vous pouvez également trouver un résumé pratique des codes qui correspondent de manière pratique à ce qu’Excel utilise sur Wikipédia:

https://en.wikipedia.org/wiki/Date_format_by_country

Un point intéressant concernant cette approche est que peu importe comment la date dans la cellule A1 est formatée. Lorsque vous utilisez TEXT, il s’appuie sur le numéro de série sous-jacent utilisé par Excel pour stocker la date, puis le met en forme selon le modèle que vous spécifiez, indépendamment de toute mise en forme dans la cellule contenant la date.

Bien sûr, si vous souhaitez effectuer une conversion directe en texte, vous n’avez rien à concaténer avec la date. Dans ce cas, vous utiliseriez simplement la fonction TEXT seule:

=TEXT(A1, "mmmm d, yyyy")

La fonction TEXT, par nature, renvoie une valeur strictement textuelle.

_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 (13450) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.