Gestion dates VB Excel [Résolu/Fermé]

Signaler
-
 salut -
Bonjour,

J'ai un souci dans une macro excel.
J'extrais des données d'une base de données que je colle dans excel et une macro les traite ensuite.

Le problème que j'ai est que cette extraction donne les dates au format dd.mm.yy
J'aimerais les avoir au format dd/mm/yyyy

Je vois deux problème de mon côté...

Le premier est que l'année est représentée par 2 chiffres au lieu de 4. Les deux premiers chiffres doivent être 20 pour avoir une date au format dd/mm/20yy

Ensuite j'ai l'impression qu'excel ne comprend pas que les 2 premiers caractères sont des jours et non des mois. pour toutes les dates dont les jours sont supérieur à 12, le résultat n'est pas reconnu comme un date...

voici le code que j'ai... Si vous avez un conseil je suis preneur!


Range("K2").Select
Range(selection, selection.End(xlDown)).Select
selection.NumberFormat = "dd.mm.yy"
selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
selection.NumberFormat = "dd/mm/yyyy"

8 réponses

Messages postés
17380
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
4 648
Salut,

essayes avec ce code

Selection.NumberFormat = "m/d/yyyy"

A+
J'ai essayé ca me donne le même problème:
pour une date initialement "06.06.08" le résulat est "06/06/2008" donc parfait de ce côté
par contre pour un date initialement "23.06.08" le résultat est "23/06/08" et excel ne le reconnaite pas comme date...

Tu as une autre idée?

Merci en tout cas de te pencher sur ce cas!

@+
Messages postés
17380
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
4 648
Ta cellule doit être déclaré en texte ou autre,

mets un exemple de ton fichier sur le forum avec ce lien que l'on regarde cela de plus prêt

https://www.cjoint.com/

A+
après de gros soucis sur les dates ou le jour est supérieur à 12, des essai avec datval(), j'ai trouvé ça.

Range("K2").Select
Range(Selection, Selection.End(xlDown)).Select
For Each c In Selection.Cells
c.Value = Mid(c, 1, 2) & "/" & Mid(c, 4, 2) & "/20" & Mid(c, 7, 2)
Next
Selection.NumberFormat = "dd/mm/yyyy"
Selection.HorizontalAlignment = xlRight

Si ca peut t'aider....
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
selection.NumberFormat =format(date,"dd/mm/yyyy")
selection.NumberFormat =format(date,"dd/mm/yyyy") ne marche pas (ou je n'ai pas su?)

alors j'ai fait un mix:

Range("K2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
For Each c In Selection.Cells
c.Value = Format(c.Value, "dd/mm/yyyy")
Next
Selection.HorizontalAlignment = xlRight

l'alignement (a droite ou à gauche) est nécessaire car les fameuses dates avec jours > 12 sont alignées à gauches tandis que les autres le sont à droite
Messages postés
17380
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
4 648
Sur mon post 3 je proposais qu'un exemple du problème soit mis sur le forum, je pense qu'il y a mauvaise saisie de la date au départ ce qui est interprété par excel comme du texte.
Si on saisie 06/05/08 par exemple et que l'on applique dans le code macro
Selection.NumberFormat = "m/d/yyyy"
il n'y a aucun problème.
Par contre si il est saisie 06.05.08 la macro ne modifie pas cette saisie qui est considérée comme du texte.
Les séparateurs de date étant / si l'on souhaite qu'ils soient remplacé par un point il convient de modifier les paramètres ce qui risque poser d'autre problèmes

A+
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
salut,
affecter a la cellule le format suivant, exemple:
Feuil1.cells(14, 3) = Format$(Date, "dd mm yyyy")
Messages postés
17380
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
4 648
Salut Archi-dessin,

ne t'affole pas plusieurs discutions sont ouvertes sur ce thème par booby311

A+