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

Pierrot93

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour,

tu parles d'import.... tu ne peux pas importer la colonne en question sous format texte.... Sinon regarde peut être du coté de la conversion de données...

bon après midi
@+
 

JNP

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Bonsoir Adrian :),
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
Dans ton processus d'importation, tu as la possibilité de sélectionner colonne par colonne le format du texte entre Standard, Texte ou Date, il te suffit donc de sélectionner Texte pour ta référence et le tour sera joué :p...
Bon courage :cool:
Ajout :Salut Pierrot ;)
 

adrian

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour Pierrot,

il s'agit d'un import au format CSV sur lequel je n'ai vraiment pas la main.

Est-ce que tu aurais une autre solution sous la main ?

je reste à l'écoute, d'avance merci à tous les futurs participant de ce sujet.

bonne fin de journée à tous
 

Pierrot93

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Re, bonjour JNP:)

bah ton csv tu l'ouvres coment ? si tu le fait par fichier => ouvrir, cela appele l'assistant de conversion, et a cemoment pour la colone en question tu choisis le format texte.
 

adrian

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

petit complément d'information :

quand je passe en texte une cellule qui était sous forme de date, la série de chiffre que je récupère est très différente de ce que je souhaite puisque le résultat correspond au nombre de jours entre la date et la date de référence sous excel (1er janvier 1900 si je ne m'abuse).

ex: 8050-09-7(fichier initial) sera transformé en 07/09/8050(date) qui sera transformé en 2246493(texte)
 

adrian

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

Rebonjour Pierrot, bonjour JNP,

merci pour vos réponses, en effet j'ouvre le fichier CSV en faisant fichier => ouvrir, par contre comment dois-je faire pour faire intervenir l'assistant de conversion svp ? il ne se lance pas automatiquement ?
 

pierrejean

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour à tous

Vois si cela te convient
 

Pièces jointes

  • test changement date en texte_v1.xlsm
    18.1 KB · Affichages: 132
  • test changement date en texte_v1.xlsm
    18.1 KB · Affichages: 152
  • test changement date en texte_v1.xlsm
    18.1 KB · Affichages: 153

adrian

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

Merci à tous les 3,

@Pierrot : ok pour l'import de données externes, j'ai même pu importer via un format xml avec les colonnes formatées en texte.
@pierrejean : impeccable ça fonctionne au poil, 2 sujets traités pour moi en 1 journée = un très grand merci.

bonne continuation à tous!
 

tototiti2008

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour adrian, Bonjour JNP :), Bonjour Pierrot :), Bonjour Pierre :),

Pour info, une autre solution est de renommer le fichier .csv en .txt avant de l'ouvrir dans Excel, si l'import est manuel, ce qui permet d'avoir accès à l'assistant de conversion
 
Dernière édition:

Michael86

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour,

J'ai le même problème qu'Adrian a rencontré à la différence près que mes chiffres sont transformés au format JJ.mmm dans une colonne et au format mmm.aa dans une autre et que j'aimerais les avoir en format texte "simple" (par ex. 16.05).

Ce problème est apparu après avoir formaté mon ordi et installé Office 2010 pro à la place du standard.

Je pense qu'il suffit de modifier un peu la macro de pierrejean, mais ça dépasse largement mes capacités.

Merci d'avance pour votre aide.
 

Pièces jointes

  • Dates au lieu de texte.xlsx
    10.2 KB · Affichages: 66
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour Michael86

Vois si cela te convient
 

Pièces jointes

  • Dates au lieu de texte_b.xlsm
    21.2 KB · Affichages: 85
  • Dates au lieu de texte_b.xlsm
    21.2 KB · Affichages: 87
  • Dates au lieu de texte_b.xlsm
    21.2 KB · Affichages: 89

Michael86

XLDnaute Nouveau
Re : Convertir une date "jj/mm/aaaa" en texte

Bonjour pierrejean,

Merci pour ta réponse mais ce n'est pas tout à fait ce dont j'ai besoin.

Je pense que mon explication manquait de clarté et je m'en excuse.

Ci-dessous de meilleures explications :

- Colonne C doit rester comme elle est.
- Colonne D doit être au format texte (ligne 8: 16.mai -> 16.5)
- Colonne E doit également être au format texte (ligne 2 et suivantes: janv.72 -> 1.72)
- Les autres colonnes sont ok (sauf erreur car j'ai 5.5 millions de cellules)

Merci d'avance.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

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