Convertir une date "jj/mm/aaaa" en texte

adrian

XLDnaute Nouveau
Bonjour le forum,

voici mon problème : lorsque j'importe une base de données, il arrive que certaine cellules affichent des résultats sous le format de date alors qu'il ne s'agit en réalité que de nombres

ex : 8050-09-7 sera transformé en 07/09/8050

J'ai déjà tenté la solution de changer le format de cellule en format personnalisé "aaaa-mm-j" ce qui effectivement visuellement fonctionne, mais la cellule reste au format date ce qui me gêne pour la suite de mes opérations.

J'ai également testé le fait de mettre la cellule en format texte au lieu de standard, ce qui fonctionne mais nécessite une opération manuelle trop longue compte tenu du nombre de cellules à vérifier.

Ce que je souhaiterais faire c'est l'opération inverse de celle effectuée automatiquement lors de l'import, c'est à dire de repasser d'un format date "jj/mm/aaaa" à un format texte xxxx-xx-x.
Via la fonction =TEXTE("A1";"aaaa-mm-j") ça fonctionne, mais cela implique d'insérer une nouvelle colonne et de faire glisser le calcul manuellement.

Est-ce qu'il serait possible de faire une macro qui tourne automatiquement à l'ouverture du classeur et qui effectue cette conversion de date en texte ?

Pour info voici un essai de code mais qui ne fonctionne pas :

Code:
Sub changement_date_en_heure()

For i = 6 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 2) <> "" Then
Cells(i, 3) = Application.WorksheetFunction.Text(Cells(i, 2), "yyyy-mm-d")
End If
Next i

End Sub

et voici un fichier test
 

Pièces jointes

  • test changement date en texte_v1.xlsm
    17.1 KB · Affichages: 97
  • test changement date en texte_v1.xlsm
    17.1 KB · Affichages: 109
  • test changement date en texte_v1.xlsm
    17.1 KB · Affichages: 112

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote