Convertion date vba
Résolu/Fermé
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
-
7 nov. 2012 à 20:33
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 nov. 2012 à 03:51
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 nov. 2012 à 03:51
Bonjour,
J'Ai une problématique que je n'arrive pas à comprendre. Je veux convertir une colonne qui contient des dates conformes et des dates non reconnues car anglais. Par exemple, 20-avr-2012. Je fais les procédures manuelles et cela fonctionne (1-format, 2- remplacer par, 3-conversion). Par contre. si je pars une macro en faisant exactement les mêmes fonctions le résultat n'est pas équivalent. Lors de la conversion les dates se changent entre le mois et le jour. Tout parait ok mais au lieu d'inscrire le 10 août 2012 cela écrit le 08 octobre 2012????
pourquoi en programmation le résultat est différent du manuel qui lui fonctionne avec les mêmes procédures??? Je veux bien modifier la programmation mais j'Ai atteint la limite de la logique!
J'Ai une problématique que je n'arrive pas à comprendre. Je veux convertir une colonne qui contient des dates conformes et des dates non reconnues car anglais. Par exemple, 20-avr-2012. Je fais les procédures manuelles et cela fonctionne (1-format, 2- remplacer par, 3-conversion). Par contre. si je pars une macro en faisant exactement les mêmes fonctions le résultat n'est pas équivalent. Lors de la conversion les dates se changent entre le mois et le jour. Tout parait ok mais au lieu d'inscrire le 10 août 2012 cela écrit le 08 octobre 2012????
pourquoi en programmation le résultat est différent du manuel qui lui fonctionne avec les mêmes procédures??? Je veux bien modifier la programmation mais j'Ai atteint la limite de la logique!
10 réponses
Bonjour,
Peut être un explication?
10 août 2012
08 octobre 2012
si la date est 10/08/2012 au format franças (jj/mm/aaaa) -> 10 août 2012
si la date est 10/08/2012 au format anglais (mm/dd/yyyy) -> 08 octobre 2012 après traduction en français
A+
Peut être un explication?
10 août 2012
08 octobre 2012
si la date est 10/08/2012 au format franças (jj/mm/aaaa) -> 10 août 2012
si la date est 10/08/2012 au format anglais (mm/dd/yyyy) -> 08 octobre 2012 après traduction en français
A+
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
7 nov. 2012 à 21:09
7 nov. 2012 à 21:09
ok mais comment faire pour le convertir corectement avec francais et anglais dans la même colonne?
et surtout pourquoi alors si je procède à la convertion sans vba cela fonctionne?
et surtout pourquoi alors si je procède à la convertion sans vba cela fonctionne?
Difficile à dire
Regardes comment sont réglées les options régionales (panneau de configuation) et les options Excel
A+
Regardes comment sont réglées les options régionales (panneau de configuation) et les options Excel
A+
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
7 nov. 2012 à 21:21
7 nov. 2012 à 21:21
merci YODA mais cela n'a pas de lien avec les paramètres. c'est vraiment de la conversion texte et ensuite de la conversion date.
Si mon problème existait même en mode manuel je serais capable de trouver pourquoi mais là c'est juste en vba...bizarre
Si mon problème existait même en mode manuel je serais capable de trouver pourquoi mais là c'est juste en vba...bizarre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu peux mettre ton fichier sur http://www.cjoint.com/
et tu postes le lien généré
Avec le fichier sous les yeux ce sera plus parlant.
A+
et tu postes le lien généré
Avec le fichier sous les yeux ce sera plus parlant.
A+
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
7 nov. 2012 à 21:47
7 nov. 2012 à 21:47
merci de m'éduquer dans cet nouvel univers pour moi YODA!
Alors voici le lien pour mon fichier:
https://www.cjoint.com/?3KhvTHv2AnC
c'est la colonne F
Alors voici le lien pour mon fichier:
https://www.cjoint.com/?3KhvTHv2AnC
c'est la colonne F
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
7 nov. 2012 à 22:02
7 nov. 2012 à 22:02
Voilà la macro utilisée...désolé c'est une macro classeur personnel donc pas dans le fichier
Sub date
ActiveCell.EntireColumn.Select
Selection.NumberFormat = "dd/mm/yy;@"
Selection.Replace What:="dec", Replacement:="12", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="mai", Replacement:="05", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="avr", Replacement:="04", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="fev", Replacement:="02", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="aou", Replacement:="08", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'
Selection.NumberFormat = "dd/mm/yy;@"
Selection.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"
ActiveCell.EntireColumn.Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End Sub
Sub date
ActiveCell.EntireColumn.Select
Selection.NumberFormat = "dd/mm/yy;@"
Selection.Replace What:="dec", Replacement:="12", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="mai", Replacement:="05", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="avr", Replacement:="04", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="fev", Replacement:="02", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="aou", Replacement:="08", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'
Selection.NumberFormat = "dd/mm/yy;@"
Selection.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"
ActiveCell.EntireColumn.Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End Sub
Je crois avoir réglé le problème après baucoup de tatonnements.
L'execution de la macro prend systématiquement les dates au format anglais, donc confusion.
par exemple avril en abrégé -avr- en français devient -apr- en anglais
donc il suffit de remplacer le mot français par sa traduction en anglais et la macro interprète la date correctement.
j'ai corrigé la macro en conséquence.
la derniere commande (Selection.TextToColumns Destination:=ActiveCell....)
met la pagaille, à laisser en commentaire.
A+
L'execution de la macro prend systématiquement les dates au format anglais, donc confusion.
par exemple avril en abrégé -avr- en français devient -apr- en anglais
donc il suffit de remplacer le mot français par sa traduction en anglais et la macro interprète la date correctement.
j'ai corrigé la macro en conséquence.
la derniere commande (Selection.TextToColumns Destination:=ActiveCell....)
met la pagaille, à laisser en commentaire.
Sub changedate() ActiveCell.EntireColumn.Select 'Selection.NumberFormat = "dd/mm/yy;@" Selection.Replace What:="dec", Replacement:="dic", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="mai", Replacement:="may", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="avr", Replacement:="apr", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="fev", Replacement:="feb", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="aou", Replacement:="aug", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="juin", Replacement:="jun", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="juil", Replacement:="jul", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'Selection.NumberFormat = "dd/mm/yy;@" Selection.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy" ActiveCell.EntireColumn.Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With 'Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 4), TrailingMinusNumbers:=True End Sub
A+
mmejuly
Messages postés
8
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
17 octobre 2014
8 nov. 2012 à 15:53
8 nov. 2012 à 15:53
WOW YODA merci énormément cela fonctionne et je dois avouer que j'étais désemparée!
où que tu sois et qui que tu sois, tu es génial :)
où que tu sois et qui que tu sois, tu es génial :)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
9 nov. 2012 à 03:51
9 nov. 2012 à 03:51
Bonjour,
Si c'est le résultat d'une importation, il faut (à l'étape 2 ?) spécifier le format de date J/M/A sur les colonnes concernées.
eric
Si c'est le résultat d'une importation, il faut (à l'étape 2 ?) spécifier le format de date J/M/A sur les colonnes concernées.
eric