Formats dates differents

bobjazz

XLDnaute Impliqué
Bonjour,
Problème avec une extraction qui me donne des formats dates différents et je n'arrive pas à les mettre dans les mêmes formats.
Mon souhait si c'est possible est de faire la différence entre les 2 colonnes, colonne B - colonne A et si j'ai la valeur "No Value" = "No Value".
Merci
Bobjazz
 

Pièces jointes

  • Format date.xlsx
    8.9 KB · Affichages: 39

Theze

XLDnaute Occasionnel
Bonjour,

Un code pour les mettre toutes au même format :
Code:
Sub Test()
   
    Dim Plage As Range
    Dim Cel As Range
   
    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)): End With
   
    For Each Cel In Plage
   
        If Cel.Value <> "No Value" Then
               
            Cel.Value = CDate(Cel.Value)
            Cel.NumberFormat = "dd/mm/yyyy hh:mm:ss"
       
        End If
       
    Next Cel

End Sub
 

job75

XLDnaute Barbatruc
Bonjour bobjazz, Theze,

On aura remarqué qu'en colonne B les jours et les mois sont inversés donc utiliser :
Code:
Sub Convertir()
Dim t, i&, x$, mois$, jour$
With [A1].CurrentRegion.Resize(, 2)
    t = .Value 'matrice, plus rapide
    For i = 2 To UBound(t)
        If IsDate(t(i, 1)) Then t(i, 1) = CDate(t(i, 1))
        x = t(i, 2)
        If x Like "##/##*" Then
            mois = Left(x, 2): jour = Mid(x, 4, 2)
            x = jour & "/" & mois & Mid(x, 6)
            If IsDate(x) Then t(i, 2) = CDate(x)
        End If
    Next
    .NumberFormat = "dd/mm/yyyy hh:mm:ss"
    .Value = t 'restitution
End With
End Sub
Utilisant un tableau VBA la macro est très rapide.

Fichier joint.

A+
 

Pièces jointes

  • Format date(1).xlsm
    21.7 KB · Affichages: 28

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour,
Problème avec une extraction qui me donne des formats dates différents et je n'arrive pas à les mettre dans les mêmes formats.
Mon souhait si c'est possible est de faire la différence entre les 2 colonnes, colonne B - colonne A et si j'ai la valeur "No Value" = "No Value".
Merci
Bobjazz
postez ici le fichier source avant tout utilisation d'Excel !!!
c'est lors de l'import qu'il faut utiliser le convertisseur de l'assistant d'importation en précisant pour chaque champ date le format lu !!!
 
Dernière édition:

bobjazz

XLDnaute Impliqué
Merci pour vos réponses
cela fonctionne mais je n'arrive pas à calculer le temps entre les 2 dates
Joint le vrai export comme je l’obtiens, mon souhait est de calculer le temps entre les colonnes Date Created et To take into account Dat et idem entre Date Created et TTR Effective .
Merci d'avance
Bobjazz
 

Pièces jointes

  • 181005 SR BDF.xlsx
    169.8 KB · Affichages: 29

Modeste geedee

XLDnaute Barbatruc
Joint le vrai export comme je l’obtiens, mon souhait est de calculer le temps entre les colonnes Date Created et To take into account Dat et idem entre Date Created et TTR Effective .
Merci d'avance
Bobjazz
d'ou vient ce fichier , quelle application le créé ???
:mad: je n'attends pas un fichier Excel, mais un fichier de type .txt ou csv, .rtf ou .html !! tout sauf .xl*

:(:confused:o_O "By design" Excel convertit sans avertissement toute donnée interprétable selon les options linguistiques du poste utilisateur !!!
 

job75

XLDnaute Barbatruc
Re,

Le fichier en retour avec la macro complétée :
Code:
Sub Convertir()
Dim t, i&, x$, mois$, jour$
With [A4].CurrentRegion.Columns(15).Resize(, 6)
    t = .Value 'matrice, plus rapide
    For i = 2 To UBound(t)
        If IsDate(t(i, 1)) Then t(i, 1) = CDate(t(i, 1))
        x = t(i, 2)
        If x Like "##/##*" Then
            mois = Left(x, 2): jour = Mid(x, 4, 2)
            x = jour & "/" & mois & Mid(x, 6)
            If IsDate(x) Then t(i, 2) = CDate(x): t(i, 3) = t(i, 2) - t(i, 1)
        End If
        x = t(i, 5)
        If x Like "##/##*" Then
            mois = Left(x, 2): jour = Mid(x, 4, 2)
            x = jour & "/" & mois & Mid(x, 6)
            If IsDate(x) Then t(i, 5) = CDate(x): t(i, 6) = t(i, 5) - t(i, 1)
        End If
    Next
    .NumberFormat = "dd/mm/yyyy hh:mm:ss"
    .Columns(3).NumberFormat = "[hh]:mm:ss"
    .Columns(6).NumberFormat = "[hh]:mm:ss"
    .Value = t 'restitution
End With
End Sub
Le calendrier 1904 est utilisé car il y a des heures négatives.

A+
 

Pièces jointes

  • 181005 SR BDF(1).xlsm
    187.5 KB · Affichages: 38

Modeste geedee

XLDnaute Barbatruc
Re,


Le calendrier 1904 est utilisé car il y a des heures négatives.

A+
je reste persuadé que le problème est en amont ...
les colonne P et O sont en formats de date différents JMA & MJA
le calendrier 1904 ne se justifie aucunement : la colonne O ne comporte pas les secondes...
soit que Excel à déjà interprété automatiquement des dates
soit que ce n'est pas le fichier directement issu de Oracle
soit que quelqu'un à déjà malencontreusement opéré une mise en forme avant export
 

Modeste geedee

XLDnaute Barbatruc
Bonjour Modeste geedeee,

Ah bon ? Faut voir un opticien.

A+
toutes mes confuses:rolleyes:
:D mes lunettes étaient à l'envers... il s'agissait en fait de la colonne P....
malgré le format appliqué, les données sont sous forme de "texte " !!!
upload_2018-10-8_14-28-10.png

j'attends toujours la réponse à #4, #6, #9 !!!!
 

Modeste geedee

XLDnaute Barbatruc
Il te faut des lunettes à double foyer : les colonnes O P R S étaient alignées à gauche, j'ai retiré cet alignement dans ce fichier (2).
;):cool: Malgré ta vocation tardive au métier d'opticien...
je persiste "pur texte"
soit que Excel à déjà interprété automatiquement des dates
soit que ce n'est pas le fichier directement issu de Oracle
soit que quelqu'un à déjà malencontreusement opéré une mise en forme avant export

les formats affichés ne correspondent pas aux formats appliqués aux cellules !!!
upload_2018-10-8_16-55-16.png


la colonne P ne contient pas de seconde ni à l'affichage, ni en format interne (texte)
 

Discussions similaires

Réponses
4
Affichages
133
Réponses
5
Affichages
193

Statistiques des forums

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