Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Changer année d'une Date en Texte dans une colonne

  • Initiateur de la discussion Initiateur de la discussion Paritec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Paritec

XLDnaute Barbatruc
Bonjour à tous, bonjour le forum,
J'aimerais pouvoir changer une colonne dans une feuille, suite à la récupération par une requête j'ai un format 12/12/2005 00:00 et je voudrais que en lieu et place ne s'affiche que l'année mais pas sous forme "aaaa" ou "yyyy" mais sous forme de texte simplement un chiffre ?
J'ai éssayé en changeant le format de cellule et là OK l'affichage est parfait mais si je passe la sourie sur une cellule la cellule me donne 12/12/2005 même si je lis seulement 2005.
Si vous avez une macro miracle c'est avec plaisir ma colonne à changer est la I feuille7
dans l'attente de vos réponse
a+
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

Bonjour Paritec,

Par formule, ça pourrait donner ceci :

Si les données sont reconnues par Excel comme une date + heure :

Dans une colonne à côté :

=TEXTE(A1;"aaaa")

Si les données sont en texte, à essayer :

=TEXTE(A1*1;"aaaa")

(Moins sûr de moi pour cette 2ème formule...😱)

En VBA, bah là, je laisse la parole aux Vbaïstes qui ne vont pas tarder à passer.

@+
 
Re : Changer année d'une Date en Texte dans une colonne

Bonjour Tibo Bonjour Le Forum,
Je te remercie de ta réponse seulement la difficulté est que je veux pouvoir le faire dans la même colonne Hors ce que tu m'as donné c'est dans une colonne en +
je vais voir si je peux adapter mais cela concerne un feuille avec 15000 lignes qui grossie de jour en jour et par formule, cela fait des fichiers énormes.
merci de ton aide mais si une solution vba tombe je la préférerai
merci encore Tibo
amicalement
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

Bonjour Paritec, Tibo

Un exemple par macro si j'ai bien compris ta demande :

Les données de la colonne A sont mises dans un tableau en mémoire, puis modifiées dans ce même tableau.
Elles sont ensuite replacées dans la même colonne en remplacement des données précédentes. Enfin le format Texte est appliqué à la colonne A.

Code:
Sub Format_Date()

Dim tablo As Variant, Plg As Range
Dim i As Long

Set Plg = Range("A1:A" & Range("A65536").End(xlUp).Row)
tablo = Plg
For i = 1 To UBound(tablo, 1)
   tablo(i, 1) = Mid(tablo(i, 1), 7, 4)
Next
Plg.Clear
Plg = tablo
'conversion des données de la colonne en format texte
Columns("A:A").NumberFormat = "@"
End Sub

Les données doivent impérativement être comme tu le dis : 12/12/2005 00:00 (ou au pire 12/12/2005 )

Bon test, A+

Tibo : je vois que tu as encore franchi un nouveau pallier pour le bien de tous, alors félicitations. 😉
 
Re : Changer année d'une Date en Texte dans une colonne

bonjour bqtr bonjour le Forum,
Ta macro je l'ai modifié pour que ce soit la colonne I mais elle me mets une erreur 13 incompatibilité de type.??? Je te mets ce que j'ai modifié au cas ou j'aurais merdé!!!!
Dans l'attente de ton contrôle à+
Papou
Sub Format_Date()
Dim tablo As Variant, Plg As Range
Dim i As Long

Set Plg = Range("I1:I" & Range("I65536").End(xlUp).Row)
tablo = Plg
For i = 1 To UBound(tablo, 1)
tablo(i, 1) = Mid(tablo(i, 1), 7, 4)
Next
Plg.Clear
Plg = tablo
'conversion des données de la colonne en format texte
Columns("I:I").NumberFormat = "@"
End Sub
 
Re : Changer année d'une Date en Texte dans une colonne

Re,

Y pas d'erreur dans l'adaptation, chez moi ça fonctionne correctement.
Je te joins un exemple.

Cela vient peut-être de l'importation, as tu regardé le format des cellules de ta colonne ?
 

Pièces jointes

Re : Changer année d'une Date en Texte dans une colonne

Re bqtr re le forum,
Force est de constater que tu as raison sur ton fichier cela marche,
je dois avoir modifié quelques choses et maintenant je pense savoir quoi, j'ai déjà du formaté mes cellules en "yyyy" alors il faut que je revienne à ma requête d'origine j'essaye tout de suite et je te dis quoi par retour
a+
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

bqtr le forum bonsoir,
je viens de faire l'essai et là j'ai bien le format au départ 12/12/2005 00:00 mais à chaque fois j'ai la ligne la en jaune
For i = 1 To UBound(tablo, 1)
si tu comprends n'hésites pas
a+
amicalement
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

Re,

Tu peux modifier la ligne comme suit sans le 1 à la fin :

For i = 1 To UBound(tablo)

Essaye de mettre un fichier en exemple, ce sera plus simple, sinon on va tourner en rond 😕
 
Re : Changer année d'une Date en Texte dans une colonne

re bqtr re le Forum
Pour Joindre un bout de fichier pas simple avec une requête bref.
De toutes façons la connerie vient du fait qu'il ne faut changer que à partir de I2 car en I1 il y a du texte et donc pas de Date
J'ai essayé mais en haut j'ai mis "I2:I" mais en bas dans Column là je sais pas quoi mettre.
et après cela marchera c'est a peu près sur
a+
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

Re,

Tu n'as rien d'autre à changer, l'instruction :

Range("I65536").End(xlUp).Row)

détermine la dernière cellule non vide de la colonne.
Donc pour commencer à partir de la ligne 2 il faut:

Set Plg = Range("I2:I" & Range("I65536").End(xlUp).Row)

Pour la colonne y a rien à changer

Mais bon je suis septique

Salut Skoobi, les deux façons fonctionnent que l'on commence en ligne 1 ou 2, si c'est ca faudra qu'on m'explique ?? 😀
 
Dernière édition:
Re : Changer année d'une Date en Texte dans une colonne

Bonjour SkooBi re bqtr rebonsoir le Forum,
alors sceptique comme les fosses bqtr, et pourtant c'était cela !!
Maintenant cela marche.
Merci à tous deux pour les réponses maintenant il faut que j'ajoute la commande à la fin de la récupération de ma requête.
je vous dirai cela demain matin car il faut que je parte alors je laisse cela en plan mais je vous dirai quoi demain matin
amicalement
et bonne soirée à tous
Papou
 
Re : Changer année d'une Date en Texte dans une colonne

Re,

C'est bien ce que je dit, je ne comprends pas !

La macro dans un premier temps extrait 4 caractères à partir du 7ème, que le format de la cellule soit du texte, une date, des nombres... qu'il y ait 3,4,12 ou 25... caractères, que tu commences en I1 ou I2 ou I3...
Si il y a moins de 7 catactères, la cellule sera vide.

Pour le format de la colonne c'est pareil que ce soit :
-Range("I2:I" & Range("I65536").End(xlUp).Row).NumberFormat = "@"
-Columns("I:I").NumberFormat = "@"
-Range("I5:I20").NumberFormat = "@"
Cela ne change rien, la sélection sera mise au format Texte.

Donc mystère, mais je suis loin de connaître toutes les subtilités en VBA.
C'est pour ça que je me disais sCeptique, d'ailleurs est ce que les fosses spetiques sont sceptiques ?? 😉

Mais le principal c'est que cela fonctionne

Bonne soirée
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
5
Affichages
1 K
marcenana
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…