Comment convertir des dates dans un autre format ?

Yakusa

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je souhaiterai convertir une liste de cellule de cette forme : jj/mm/aaaa
en x.x.x

exemple :
02/06/2001 -> 2.6.1

Merci d'avance
Cordialement,
 
Dernière édition:

Jocelyn

XLDnaute Barbatruc
Re : Comment convertir des dates dans un autre format ?

Bonjour le Forum,
Bonjour Yakusa,

si la date 02/06/2001 est en A1 tu peux mettre en B1 :

=JOUR(A1)&"."&MOIS(A1)&"."&ANNEE(A1)-2000

Jocelyn

Bonjour Shock désolé pour la collision
 

Yakusa

XLDnaute Nouveau
Re : Comment convertir des dates dans un autre format ?

Jocelyn à dit:
Bonjour le Forum,
Bonjour Yakusa,

si la date 02/06/2001 est en A1 tu peux mettre en B1 :

=JOUR(A1)&"."&MOIS(A1)&"."&ANNEE(A1)-2000

Jocelyn

Bonjour Shock désolé pour la collision

Merci aussi de ta réponse rapide Jocelyn :D
c'est exactement ce que je voulais mais elle fais référence uniquement à la cellule A1 et ça me pose un petit problème :(

Je souhaiterai modifier la colonne entière dès qu'il vois le format jj/mm/aaaa car les cellules a modifier sont placés un peu partout et pas uniquement dans la cellule A1...

Merci encore une fois
 

Jocelyn

XLDnaute Barbatruc
Re : Comment convertir des dates dans un autre format ?

re bonjour,

c'est une formule a recopier en colonne B sur la hauteur de la colonne a ensuite tu peux masquer la colonne A

Autrement il doit bien y avoir une macro pour le faire mais la je cede la place

Jocelyn
 

Yakusa

XLDnaute Nouveau
Re : Comment convertir des dates dans un autre format ?

Jocelyn à dit:
re bonjour,

c'est une formule a recopier en colonne B sur la hauteur de la colonne a ensuite tu peux masquer la colonne A

Autrement il doit bien y avoir une macro pour le faire mais la je cede la place

Jocelyn

Bonsoir Jocelyn, le forum et les autres

Merci quand même d'avoir passé un peu de temps pour résoudre mon problème.
Voici un bout d'exemple de ma liste afin que les autres puisse m'aider :(

16/01/2001
NOT ALLOWED
18/06/01
ALLOWED
22/10/2004

Ce que je souhaiterait c'est avoir une macro qui modifie uniquement les cellules 1 - 3 - 5 en x.x.x.x (ex pour le 1er ce sera 16.1.1 et le 3e 18.6.1...

Etant donné que je ne sais pas par où commencer, j'ai fais des recherches sur le forum et un peu partout sur le net, j'ai appris qu'on pouvais utiliser FIND pour faire une recherche/remplacer...quelqu'un sait comment ça marche ou me proposer une autre solution car j'ai aucune piste :(

En vous remerciant d'avance,
Bonne nuit
 

myDearFriend!

XLDnaute Barbatruc
Re : Comment convertir des dates dans un autre format ?

Bonsoir Yakusa, Shock, Jocelyn,

Une fonction personnalisée VBA :
Code:
[SIZE=2]Function Convert[COLOR=navy]Date[/COLOR](R[COLOR=navy] As [/COLOR]Range)[COLOR=navy] As String[/COLOR]
    Application.Volatile
    [COLOR=navy]If [/COLOR]Is[COLOR=navy]Date[/COLOR](R.Value) [COLOR=navy]Then[/COLOR]
        Convert[COLOR=navy]Date[/COLOR] = Format(R.Value, "d.m.") & year(R.Value) - 2000
    [COLOR=navy]End If
End[/COLOR] Function[/SIZE]
Où copier cette fonction et comment l'utiliser ?

- Tu fais ALT + F11 pour te retrouver dans l'éditeur VBA.
- Puis, menu Insertion / Module.
- Dans la fenêtre principale (la grande) tu colles le code ci-dessus.
- ALT + F11 à nouveau pour revenir dans Excel.
- En cellule B1, tu tapes la formule : =ConvertDate(A1)
- Puis, tu tires cette formule jusqu'en bas de ton tableau.

Cordialement,
 

Charly2

Nous a quittés en 2006
Repose en paix
Re : Comment convertir des dates dans un autre format ?

Bonsoir Yakusa, bonsoir Shock, bonsoir Jocelyn et bonsoir Didier :)

Une proposition semblable à la tienne, Didier, mais par macro et non par formule personnalisée. Yakusa, l'exemple que je te propose remplace tes dates par un texte du genre j.m.a :

Code:
[FONT=Courier New][COLOR=blue]Option Explicit[/COLOR]
 
[COLOR=blue]Sub[/COLOR] Bouton1_QuandClic()
[COLOR=green]'
'------------------[/COLOR]
[COLOR=blue]Dim[/COLOR] C    [COLOR=blue]As[/COLOR] Range
[COLOR=blue]Dim[/COLOR] Temp [COLOR=blue]As Variant[/COLOR]
[COLOR=green]'------------------
'[/COLOR]
  [COLOR=blue]With[/COLOR] ThisWorkbook.ActiveSheet
    [COLOR=blue]For Each[/COLOR] C [COLOR=blue]In[/COLOR] .Range("A2:A" & .Range("A65536").End(xlUp).Row)
      [COLOR=blue]If[/COLOR] IsDate(C) [COLOR=blue]Then[/COLOR]
        Temp = C
        C = Day(Temp) & "." & Month(Temp) & "." & (Year(Temp) - 2000)
      [COLOR=blue]End If[/COLOR]
    [COLOR=blue]Next[/COLOR] C
  [COLOR=blue]End With[/COLOR]
[COLOR=blue]End Sub[/COLOR][/FONT]

A+ ;)
 

Pièces jointes

  • Yakusa_Dates.zip
    7.8 KB · Affichages: 41

Yakusa

XLDnaute Nouveau
Re : Comment convertir des dates dans un autre format ?

Bonjour Charly2, myDearFriend! et le forum

Tout d'abord un grand merci à Charly2, myDearFriend!, Jocelyn, Shock qui ont pris le temps de m'aider.
Très belle présentation du fichier joint de Charly2...un travail de pro quoi :D

Bonne journée à vous tous et merci encore.
 

Yakusa

XLDnaute Nouveau
Re : Comment convertir des dates dans un autre format ?

Bonjour à tous et à toutes,

Encore merci à ceux qui m'ont répondu précédement...
J'ai opté pour la macro de charly2 qui fonctionne à merveille, du moins pour l'instant...
Après test, j'ai trouvé quelques erreurs d'Excel :(
La macro convertie bien les dates xx/xx/xxxx en x/x/x
mais elle convertie aussi les valeurs x.x.x en une autre valeur...

un exemple sera plus parlant :
Valeurs avant lancement de la macro : 4.12.1
Valeurs après lancement : 30.12.101

Est ce qu'il y a un moyen de définir à l'avance le format et qu'il change uniquement les dates du format xx/xx/xxxx ?

En vous remerciant d'avance
Bien cordialement,
 

Shock

XLDnaute Occasionnel
Re : Comment convertir des dates dans un autre format ?

Salut,
tu peux modifier le code de Charly2 comme suit :
Code:
Option Explicit
 
Sub Bouton1_QuandClic()
'
'------------------
Dim C    As Range
Dim Temp As Variant
'------------------
'
  With ThisWorkbook.ActiveSheet
    For Each C In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
      If C.Value Like "*.*" Then
      GoTo suite
      End If
      If IsDate(C) Then
        Temp = C
        C = Day(Temp) & "." & Month(Temp) & "." & (Year(Temp) - 2000)
      End If
suite:
    Next C
  End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
255
Réponses
2
Affichages
313

Statistiques des forums

Discussions
312 294
Messages
2 086 893
Membres
103 404
dernier inscrit
sultan87