Dans une cellule de la feuille Excel, j'ai une valeur de date comme:
01/01/2010 14:30:00
Je veux convertir cette date en texte et que le texte ressemble exactement à la date. Ainsi, une valeur de Date de 01/01/2010 14:30:00
devrait ressembler à 01/01/2010 14:30:00
mais, en interne, il devrait s'agir de Texte.
Comment puis-je faire cela dans Excel?
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")
(heure sur 24 heures)
=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")
(heure normale)
Voici une approche VBA:
Sub change()
toText Sheets(1).Range("A1:F20")
End Sub
Sub toText(target As Range)
Dim cell As Range
For Each cell In target
cell.Value = cell.Text
cell.NumberFormat = "@"
Next cell
End Sub
Si vous recherchez une solution sans programmation, la question doit être déplacée vers le superutilisateur.
Voici une autre option. Utilisez l'assistant "Texte en colonnes" d'Excel. Il se trouve sous l'onglet Données dans Excel 2007.
Si vous avez sélectionné une colonne, les valeurs par défaut pour le type de fichier et les délimiteurs devraient fonctionner, puis le système vous invite à modifier le format de données de la colonne. Le choix du texte force le formatage du texte pour s'assurer qu'il n'est pas stocké sous forme de date.
Dans certains contextes, utiliser un caractère au préalable fonctionnera, mais si vous enregistrez au format CSV et chargez à nouveau, cela est impossible.
'01/01/2010 14:30:00
Si vous n'utilisez pas la programmation, procédez comme suit (1) sélectionnez la colonne (2) faites un clic droit et sélectionnez Formater les cellules (3) Sélectionnez "Personnalisé" (4) Juste sous " Type: "type jj/mm/aaaa hh: mm: ss
Je n'ai aucune idée de l'année de publication de la question. il pourrait être vieux maintenant. Donc, je m'attends à ce que ma réponse soit davantage une référence pour de futures questions similaires après mon post.
Je ne sais pas si quelqu'un a déjà donné une réponse semblable à celle que je m'apprête à donner, ce qui pourrait avoir pour résultat -Je pense- être la plus simple, la plus directe et la plus efficace: si quelqu'un l'a déjà donnée, je m'excuse , mais je ne l'ai pas vu. Ici, ma réponse en utilisant CStr au lieu de TEXT:
Une cellule A1 contient une date et utilise le code VBA:
Dim strDate As String 'Convert to string the value contained in A1 (a date) strDate = CStr([A1].Value)
Vous pouvez ensuite le manipuler comme n'importe quelle chaîne ordinaire en utilisant des fonctions de chaîne (MID, LEFT, RIGHT, LEN, CONCATENATE (&), etc.).
Dans Excel 2010, la réponse de marg ne fonctionnait que pour certaines des données contenues dans ma feuille de calcul (elles étaient importées). La solution suivante a fonctionné sur toutes les données.
Sub change()
toText Selection
End Sub
Sub toText(target As range)
Dim cell As range
Dim txt As String
For Each cell In target
txt = cell.text
cell.NumberFormat = "@"
cell.Value2 = txt
Next cell
End Sub