Convertion date vba
Résolu
mmejuly
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
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!
A voir également:
- Convertion date vba
- Airpods 3 date de sortie - Guide
- Jm date désabonnement - Forum Gmail
- Publipostage date inversée - Forum Word
- Trier par date excel - Guide
- Exif date changer - Télécharger - Albums photo
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+
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+
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+
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
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+