XL 2013 Convertion date avec et sans heures

Attila451

XLDnaute Occasionnel
Bonsoir,
J'extraie d'un logiciel un reporting sur lequel certaines dates ressortent avec l'heure, d'autres non.
La formule excel TEXTE(cellule;"JJ/MM/AAAA") fonctionne sans problème, par contre, via une macro ça me pose quelques problèmes:
Dans une boucle je mets
Format(Cells(ligori, 1), "dd/mm/yyyy")

SI j'ai une date type 22/11/2019 10:00:00, la boucle remplace en 22/11/2019
par contre, pour tous les jours < à 12, y'a un pb
Ex: 02/12/2019 qui se traduit en 12/02/2020... alors que la formule classique excel ne pose pas de pb... Si qq'un pouvait m'expliquer pourquoi ??

J'ai la parade avec un IF le nombre de carractères > 10 alors la macro applique Format(Cells(ligori, 1), "dd/mm/yyyy")
mais la version ci jointe est très raccourcie et ça me pose problème de l'appliquer sur x colonne qui ne se suivent pas.

Bref, j'aimerais que Format(Cells(ligori, 1), "dd/mm/yyyy") n'inverse pas les jours et mois pour un date style
02/12/2019

Merci d'avance pour vos lumières !
 

Pièces jointes

  • pb dates.xls
    56 KB · Affichages: 8

jmfmarques

XLDnaute Accro
Bonjour
Je n'ouvre jamais un classeur tiers et n'ai donc pas ouvert le tien.
Ce que tu rapportes donne à penser que tu as chercher à formater (par fonction Format) le contenu d'une cellule contenant une valeur date.
Je te rappelle que la fonction format retourne une valeur de type string et non une date.
Il est vraisemblable que tu devrais utiliser non le formatage de la valeur, mais celui de la cellule (numberformat).
 

Attila451

XLDnaute Occasionnel
Bonjour

Ce n'est pas une bonne idée de convertir des dates en texte

Utilise la partie entière : INT(Cells(ligori, 1))

(Après avoir corrigé A11 qui est en texte)
Bonsoir,
Merci mais vous l'appliquez comment sur la macro ?

Sub Format_Texte()
Dim ligori As Long
ligori = 11
While Cells(ligori, 1) <> ""
Cells(ligori, 2) = NumberFormat(Cells(ligori, 1))
ligori = ligori + 1
Wend
End Sub

Je plante ou ?
Merci
 

Attila451

XLDnaute Occasionnel
Bonsoir,
Merci mais vous l'appliquez comment sur la macro ?

Sub Format_Texte()
Dim ligori As Long
ligori = 11
While Cells(ligori, 1) <> ""
Cells(ligori, 2) = NumberFormat(Cells(ligori, 1))
ligori = ligori + 1
Wend
End Sub

Je plante ou ?
Merci


Pardon:


Sub Format_Texte()

Dim ligori As Long
ligori = 11

While Cells(ligori, 1) <> ""

Cells(ligori, 1) = Int(Cells(ligori, 1))
ligori = ligori + 1

Wend

End Sub
 

Discussions similaires