Bonjour, Tu fais une extraction par VBA ou avec la fonction DROITE ? Cordialement. Daniel
Bonjour, Si j'extrais les dix derniers caractères d'une cellule qui contient "19-05-2017 au 17-07-2017" j'obtiens "17-07-2017" Par contre la même chose avec une cellule qui contient "10-01-2017 au 07-03-2017" j'obtiens "03-07-2017" Excel m'inverse systématiquement mois et jour si le mois est inférieur au jour Une idée ? Merci
Bonjour,
Tu fais une extraction par VBA ou avec la fonction DROITE ?
Cordialement.
Daniel
Bonjour,
Si j'extrais les dix derniers caractères d'une cellule qui contient
"19-05-2017 au 17-07-2017"
j'obtiens "17-07-2017"
Par contre la même chose avec une cellule qui contient "10-01-2017 au
07-03-2017"
j'obtiens "03-07-2017"
Excel m'inverse systématiquement mois et jour si le mois est
inférieur au jour
Bonjour, Tu fais une extraction par VBA ou avec la fonction DROITE ? Cordialement. Daniel
Bonjour, Si j'extrais les dix derniers caractères d'une cellule qui contient "19-05-2017 au 17-07-2017" j'obtiens "17-07-2017" Par contre la même chose avec une cellule qui contient "10-01-2017 au 07-03-2017" j'obtiens "03-07-2017" Excel m'inverse systématiquement mois et jour si le mois est inférieur au jour Une idée ? Merci
Jacquouille
Salut A mon avis, mon XL2003 n'a pas cet inconvénient. Qu'utilises-tu comme formule? http://www.cjoint.com/doc/17_07/GGynX1MkVGu_date-brat-ac.xls Ne serait-ce pas le syndrome de la date US ? Jacques " Le vin est au repas ce que le parfum est à la femme." . "Brat'ac" a écrit dans le message de groupe de discussion : Bonjour, Si j'extrais les dix derniers caractères d'une cellule qui contient "19-05-2017 au 17-07-2017" j'obtiens "17-07-2017" Par contre la même chose avec une cellule qui contient "10-01-2017 au 07-03-2017" j'obtiens "03-07-2017" Excel m'inverse systématiquement mois et jour si le mois est inférieur au jour Une idée ? Merci
Salut
A mon avis, mon XL2003 n'a pas cet inconvénient.
Qu'utilises-tu comme formule?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Brat'ac" a écrit dans le message de groupe de discussion :
mn.c3907e17c7c64833.135221@yopmail.com...
Bonjour,
Si j'extrais les dix derniers caractères d'une cellule qui contient
"19-05-2017 au 17-07-2017"
j'obtiens "17-07-2017"
Par contre la même chose avec une cellule qui contient "10-01-2017 au
07-03-2017"
j'obtiens "03-07-2017"
Excel m'inverse systématiquement mois et jour si le mois est inférieur
au jour
Salut A mon avis, mon XL2003 n'a pas cet inconvénient. Qu'utilises-tu comme formule? http://www.cjoint.com/doc/17_07/GGynX1MkVGu_date-brat-ac.xls Ne serait-ce pas le syndrome de la date US ? Jacques " Le vin est au repas ce que le parfum est à la femme." . "Brat'ac" a écrit dans le message de groupe de discussion : Bonjour, Si j'extrais les dix derniers caractères d'une cellule qui contient "19-05-2017 au 17-07-2017" j'obtiens "17-07-2017" Par contre la même chose avec une cellule qui contient "10-01-2017 au 07-03-2017" j'obtiens "03-07-2017" Excel m'inverse systématiquement mois et jour si le mois est inférieur au jour Une idée ? Merci
Brat'ac
DanielCo a émis l'idée suivante :
Bonjour, Tu fais une extraction par VBA ou avec la fonction DROITE ? Cordialement. Daniel
Oui par VBA
DanielCo a émis l'idée suivante :
Bonjour,
Tu fais une extraction par VBA ou avec la fonction DROITE ?
Cordialement.
Daniel
Bonjour, Tu fais une extraction par VBA ou avec la fonction DROITE ? Cordialement. Daniel
Oui par VBA
Alors, ajoute une ligne : Range(x).Numberformmat="dd/mm/yyyy" Daniel
News.aioe.org
Bonjour, '-------------------------------------------------------- Sub test() Dim T As String Dim An As Long, Mois As Long, Jour As Long Dim X As Date 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" An = CLng(Right(T, 4)) Mois = CLng(Mid(T, Len(T) - 6, 2)) Jour = CLng(Mid(T, Len(T) - 9, 2)) X = DateSerial(An, Mois, Jour) With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = X End With End Sub '-------------------------------------------------------- MichD
Bonjour,
'--------------------------------------------------------
Sub test()
Dim T As String
Dim An As Long, Mois As Long, Jour As Long
Dim X As Date
'La date "11-07-2017" à extraire.
T = "19-05-2017 au 11-07-2017"
An = CLng(Right(T, 4))
Mois = CLng(Mid(T, Len(T) - 6, 2))
Jour = CLng(Mid(T, Len(T) - 9, 2))
X = DateSerial(An, Mois, Jour)
With Range("A1")
'ou le format date que tu désires
.NumberFormat = "DD/MM/YYYY"
.Value = X
End With
End Sub
'--------------------------------------------------------
Bonjour, '-------------------------------------------------------- Sub test() Dim T As String Dim An As Long, Mois As Long, Jour As Long Dim X As Date 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" An = CLng(Right(T, 4)) Mois = CLng(Mid(T, Len(T) - 6, 2)) Jour = CLng(Mid(T, Len(T) - 9, 2)) X = DateSerial(An, Mois, Jour) With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = X End With End Sub '-------------------------------------------------------- MichD
Brat'ac
News.aioe.org a présenté l'énoncé suivant :
Bonjour, '-------------------------------------------------------- Sub test() Dim T As String Dim An As Long, Mois As Long, Jour As Long Dim X As Date 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" An = CLng(Right(T, 4)) Mois = CLng(Mid(T, Len(T) - 6, 2)) Jour = CLng(Mid(T, Len(T) - 9, 2)) X = DateSerial(An, Mois, Jour) With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = X End With End Sub '-------------------------------------------------------- MichD
Bonjour, Super. Merci et bonne journée.
News.aioe.org a présenté l'énoncé suivant :
Bonjour,
'--------------------------------------------------------
Sub test()
Dim T As String
Dim An As Long, Mois As Long, Jour As Long
Dim X As Date
'La date "11-07-2017" à extraire.
T = "19-05-2017 au 11-07-2017"
An = CLng(Right(T, 4))
Mois = CLng(Mid(T, Len(T) - 6, 2))
Jour = CLng(Mid(T, Len(T) - 9, 2))
X = DateSerial(An, Mois, Jour)
With Range("A1")
'ou le format date que tu désires
.NumberFormat = "DD/MM/YYYY"
.Value = X
End With
End Sub
'--------------------------------------------------------
Bonjour, '-------------------------------------------------------- Sub test() Dim T As String Dim An As Long, Mois As Long, Jour As Long Dim X As Date 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" An = CLng(Right(T, 4)) Mois = CLng(Mid(T, Len(T) - 6, 2)) Jour = CLng(Mid(T, Len(T) - 9, 2)) X = DateSerial(An, Mois, Jour) With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = X End With End Sub '-------------------------------------------------------- MichD
Bonjour, Super. Merci et bonne journée.
News.aioe.org
Tu as aussi cette possibilité un peu plus courte... '----------------------------------------------------- Sub test1() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = DateValue(Right(T, 10)) End With End Sub '----------------------------------------------------- Une "Note" de l'aide d'Excel sur la fonction "DateValue" : " Notes Si date est une chaîne qui inclut uniquement des nombres séparés par des séparateurs de date valides, DateValue reconnaît l'ordre pour le mois, le jour et l'année, conformément au format de date courte que vous avez spécifié dans votre système. DateValue reconnaît également les dates non ambiguës qui contiennent les noms de mois sous forme longue ou abrégée. Par exemple, outre 30/12/1991 et 30/12/91, DateValue reconnaît 30 décembre 1991 et 30 déc 1991. Si la date ne précise pas l'année, DateValue utilise l'année en cours correspondant à la date système de votre ordinateur. Si l'argument de date inclut des informations horaires, DateValue ne les renvoie pas. Mais si date inclut des informations horaires incorrectes (comme 89:98), une erreur se produit." MichD
Tu as aussi cette possibilité un peu plus courte...
'-----------------------------------------------------
Sub test1()
Dim T As String
'La date "11-07-2017" à extraire.
T = "19-05-2017 au 11-07-2017"
With Range("A1")
'ou le format date que tu désires
.NumberFormat = "DD/MM/YYYY"
.Value = DateValue(Right(T, 10))
End With
End Sub
'-----------------------------------------------------
Une "Note" de l'aide d'Excel sur la fonction "DateValue" :
"
Notes
Si date est une chaîne qui inclut uniquement des nombres séparés par des
séparateurs de date valides, DateValue reconnaît l'ordre pour le mois, le
jour et l'année, conformément au format de date courte que vous avez
spécifié dans votre système. DateValue reconnaît également les dates non
ambiguës qui contiennent les noms de mois sous forme longue ou abrégée. Par
exemple, outre 30/12/1991 et 30/12/91, DateValue reconnaît 30 décembre 1991
et 30 déc 1991.
Si la date ne précise pas l'année, DateValue utilise l'année en cours
correspondant à la date système de votre ordinateur.
Si l'argument de date inclut des informations horaires, DateValue ne les
renvoie pas. Mais si date inclut des informations horaires incorrectes
(comme 89:98), une erreur se produit."
Tu as aussi cette possibilité un peu plus courte... '----------------------------------------------------- Sub test1() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = DateValue(Right(T, 10)) End With End Sub '----------------------------------------------------- Une "Note" de l'aide d'Excel sur la fonction "DateValue" : " Notes Si date est une chaîne qui inclut uniquement des nombres séparés par des séparateurs de date valides, DateValue reconnaît l'ordre pour le mois, le jour et l'année, conformément au format de date courte que vous avez spécifié dans votre système. DateValue reconnaît également les dates non ambiguës qui contiennent les noms de mois sous forme longue ou abrégée. Par exemple, outre 30/12/1991 et 30/12/91, DateValue reconnaît 30 décembre 1991 et 30 déc 1991. Si la date ne précise pas l'année, DateValue utilise l'année en cours correspondant à la date système de votre ordinateur. Si l'argument de date inclut des informations horaires, DateValue ne les renvoie pas. Mais si date inclut des informations horaires incorrectes (comme 89:98), une erreur se produit." MichD
News.aioe.org
Tu peux aussi transformer cette procédure en fonction comme ceci : '-------------------------------------------------------- Sub Test() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = Extrait_Date(T) End With End Sub '-------------------------------------------------------- Function Extrait_Date(LaDate As String) As Date Dim An As Long, Mois As Long, Jour As Long Dim X As Date An = CLng(Right(LaDate, 4)) Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2)) Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2)) X = DateSerial(An, Mois, Jour) Extrait_Date = X End Function '-------------------------------------------------------- MichD
Tu peux aussi transformer cette procédure en fonction comme ceci :
'--------------------------------------------------------
Sub Test()
Dim T As String
'La date "11-07-2017" à extraire.
T = "19-05-2017 au 11-07-2017"
With Range("A1")
'ou le format date que tu désires
.NumberFormat = "DD/MM/YYYY"
.Value = Extrait_Date(T)
End With
End Sub
'--------------------------------------------------------
Function Extrait_Date(LaDate As String) As Date
Dim An As Long, Mois As Long, Jour As Long
Dim X As Date
An = CLng(Right(LaDate, 4))
Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2))
Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2))
X = DateSerial(An, Mois, Jour)
Extrait_Date = X
End Function
'--------------------------------------------------------
Tu peux aussi transformer cette procédure en fonction comme ceci : '-------------------------------------------------------- Sub Test() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 11-07-2017" With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = Extrait_Date(T) End With End Sub '-------------------------------------------------------- Function Extrait_Date(LaDate As String) As Date Dim An As Long, Mois As Long, Jour As Long Dim X As Date An = CLng(Right(LaDate, 4)) Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2)) Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2)) X = DateSerial(An, Mois, Jour) Extrait_Date = X End Function '-------------------------------------------------------- MichD
News.aioe.org
Pour inclure une petite gestion de l'erreur .... '-------------------------------------------------------- Sub Test() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 19-07-2017" If IsDate(Right(T, 10)) Then With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = Extrait_Date(T) End With Else MsgBox "Les 10 derniers caractères """ & Right(T, 10) & _ """ ne représentent pas une date reconnue par Excel." End If End Sub '-------------------------------------------------------- Function Extrait_Date(LaDate As String) As Date Dim An As Long, Mois As Long, Jour As Long Dim X As Date An = CLng(Right(LaDate, 4)) Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2)) Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2)) X = DateSerial(An, Mois, Jour) Extrait_Date = X End Function '-------------------------------------------------------- MichD
Pour inclure une petite gestion de l'erreur ....
'--------------------------------------------------------
Sub Test()
Dim T As String
'La date "11-07-2017" à extraire.
T = "19-05-2017 au 19-07-2017"
If IsDate(Right(T, 10)) Then
With Range("A1")
'ou le format date que tu désires
.NumberFormat = "DD/MM/YYYY"
.Value = Extrait_Date(T)
End With
Else
MsgBox "Les 10 derniers caractères """ & Right(T, 10) & _
""" ne représentent pas une date reconnue par Excel."
End If
End Sub
'--------------------------------------------------------
Function Extrait_Date(LaDate As String) As Date
Dim An As Long, Mois As Long, Jour As Long
Dim X As Date
An = CLng(Right(LaDate, 4))
Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2))
Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2))
X = DateSerial(An, Mois, Jour)
Extrait_Date = X
End Function
'--------------------------------------------------------
Pour inclure une petite gestion de l'erreur .... '-------------------------------------------------------- Sub Test() Dim T As String 'La date "11-07-2017" à extraire. T = "19-05-2017 au 19-07-2017" If IsDate(Right(T, 10)) Then With Range("A1") 'ou le format date que tu désires .NumberFormat = "DD/MM/YYYY" .Value = Extrait_Date(T) End With Else MsgBox "Les 10 derniers caractères """ & Right(T, 10) & _ """ ne représentent pas une date reconnue par Excel." End If End Sub '-------------------------------------------------------- Function Extrait_Date(LaDate As String) As Date Dim An As Long, Mois As Long, Jour As Long Dim X As Date An = CLng(Right(LaDate, 4)) Mois = CLng(Mid(LaDate, Len(LaDate) - 6, 2)) Jour = CLng(Mid(LaDate, Len(LaDate) - 9, 2)) X = DateSerial(An, Mois, Jour) Extrait_Date = X End Function '-------------------------------------------------------- MichD