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

Problème de dates

  • Initiateur de la discussion Initiateur de la discussion PsiKamel
  • 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 !

PsiKamel

XLDnaute Nouveau
Bonjour,

j'ai cherché un peu partout sur le web mais sans trouver de réponses satisfaisantes...

Mon cas :
J'extrais des données d'un outil de gestion de ticket, mais malheureusement codé n'importe comment, les dates ont des formats différents en fonction de la période :
- parfois : dd/mm/yyyy hh:mm:ss (ce qui me va)
- parfois : dd mois. yyyy hh:mm:ss (ce qui ne me va pas)

La solution parait simple, remplacer les 12 mois de l'année écrit en lettre par l'équivalent en chiffre :
Code:
'janvier
    Cells.Replace What:=" janv. ", Replacement:="/01/", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=True, _
        ReplaceFormat:=True
'Février
    Cells.Replace What:=" févr. ", Replacement:="/02/", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=True, _
        ReplaceFormat:=True

etc.......

Sauf que... en résultat, j'obtiens des dates non reconnues (j'en ai fait mon affaire), mais surtout la transformation de certaines dates (mais pas toutes) en format anglais (mm/dd/yyyy hh:mm:ss)
Ais-je un moyen d'empêcher ce reformatage ?

Merci d'avance de vos réponses.
 
Re : Problème de dates

Boujour.
Cette formule dans une colonne libre marche-t-elle dans tous les cas ?
Code:
=DATEVAL(SUBSTITUE($A1;".";""))
Edit: bonjour Pierrejean.
 
Dernière édition:
Re : Problème de dates

Sur votre exemple, si, ça fonctionne à tout les coups sur la colonne F
Enfin plus exactement, en AJ2 :
Code:
=SI(ESTTEXTE(F2);DATEVAL(SUBSTITUE(F2;".";""))+TEMPSVAL(SUBSTITUE(F2;".";""));F2)
Mais il y a aussi des cellules vides qu'il faut laisser vides. Alors je préfère peut être le faire en vba.
À +
 
Re : Problème de dates

Merci beaucoup.
En effet, ça fonctionne. J'essaie de voir comment le faire en VBA (car le but final est de comparer des dates pour avoir des indicateurs). Si je trouve, je poste ce que j'ai fait !
 
Re : Problème de dates

De mon coté j'ai mis ça dans le module d'une nouvelle feuille :
VB:
Option Explicit

Private Sub Worksheet_Activate()
Dim T(), L&, C&
T = Feuil1.UsedRange.Value
For L = 2 To UBound(T, 1): For C = 1 To UBound(T, 2)
   If VarType(T(L, C)) = vbString Then T(L, C) = CDate(Replace(T(L, C), ".", ""))
   Next C, L
Me.Cells.Clear
Me.Cells(2, "A").Resize(UBound(T, 1) - 1, UBound(T, 2)).NumberFormat = "m/d/yyyy h:mm"
Me.Cells(1, "A").Resize(UBound(T, 1), UBound(T, 2)).Value2 = T
End Sub
 
Re : Problème de dates

J'ai à peu près la même solution. Pour ne pas toucher mes données sources, en fait, pour manipuler mes cellules et comparer mes dates, je vais utiliser CDate(Replace(Cells(i, 16), ".", "")) à la place de la valeur de la cellule elle même.
J'ai essayé sur une cellule, ça fonctionne, maintenant, je vais étendre à l'ensemble de mes macros !

Merci beaucoup

Côté pratique, c'est ma première dans ce forum, est-ce que je peux marquer quelque part que mon problème est résolu ?
 
- 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

Réponses
1
Affichages
280
Réponses
2
Affichages
471
Réponses
3
Affichages
571
Réponses
3
Affichages
543
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…