Pb avec les Dates stockées au format Texte et les macros VB
Résolu
Grabouille97
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Grabouille97 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Grabouille97 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise une macro VB pour copier-coller des données d'un classeur vers un autre, et je rencontre un problème dans l'inerprétation d'un champ qui contient un texte dont j'extrait une date.
Le contenu de la cellule de départ est le suivant : =T(" (04/01/2013 15:17:34)")
La macro Excel commence par supprimer tout les caractères qui ne font pas partie de la date :
Selection.Replace What:="=T(""", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=""")", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" ()", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="( ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" (", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=")", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
C'est à ce moment là que j'ai un problème avec les date du type 04/01/2013 15:17:34 qui sont systématiquement interprétée comme étant au format : mm/dd/yyyy hh:mm:ss
Je me retrouve avec une date au 1er Avril, au lieu du 4 janvier !
comment faire?
Merci.
J'utilise une macro VB pour copier-coller des données d'un classeur vers un autre, et je rencontre un problème dans l'inerprétation d'un champ qui contient un texte dont j'extrait une date.
Le contenu de la cellule de départ est le suivant : =T(" (04/01/2013 15:17:34)")
La macro Excel commence par supprimer tout les caractères qui ne font pas partie de la date :
Selection.Replace What:="=T(""", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=""")", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" ()", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="( ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" (", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=")", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
C'est à ce moment là que j'ai un problème avec les date du type 04/01/2013 15:17:34 qui sont systématiquement interprétée comme étant au format : mm/dd/yyyy hh:mm:ss
Je me retrouve avec une date au 1er Avril, au lieu du 4 janvier !
comment faire?
Merci.
A voir également:
- Pb avec les Dates stockées au format Texte et les macros VB
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Format dat - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
- Format apfs - Guide
5 réponses
Bonjour F894009,
Je travaille sous Excel 2007. Le fichier dont j'extrais les données et en Excel 2003.
Merci.
Je travaille sous Excel 2007. Le fichier dont j'extrais les données et en Excel 2003.
Merci.
Re,
par macro, copier les donnees d'un fichier vers l'autre, ensuite utiliser la conversion de donnees pour enlever les caracteres "parasites" et enfin formater vos cellules.
Avec l'enregistreur (sans la copie) cela donne ceci (j'ai pris toutes la colonne mais vous pouvez selectionner seulement une plage de cellules):
Sub Macro1()
'
' Macro1 Macro
'
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(6, 1), Array(25, 9)), TrailingMinusNumbers:= _
True
Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"
End Sub
Ce code peut-etre ameliore par des modif manuelles
A+
par macro, copier les donnees d'un fichier vers l'autre, ensuite utiliser la conversion de donnees pour enlever les caracteres "parasites" et enfin formater vos cellules.
Avec l'enregistreur (sans la copie) cela donne ceci (j'ai pris toutes la colonne mais vous pouvez selectionner seulement une plage de cellules):
Sub Macro1()
'
' Macro1 Macro
'
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(6, 1), Array(25, 9)), TrailingMinusNumbers:= _
True
Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"
End Sub
Ce code peut-etre ameliore par des modif manuelles
A+
Bonjour,
ou bien :
[A1] = CDate(Replace(Replace([A1], "(", ""), ")", ""))
ou :
[A1] = CDate(Mid([A1], 3, 19))
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
ou bien :
[A1] = CDate(Replace(Replace([A1], "(", ""), ")", ""))
ou :
[A1] = CDate(Mid([A1], 3, 19))
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question