Problème format date suite macro VBA convertir

Santiago

XLDnaute Nouveau
Bonjour,
J'ai créé une macro toute simple à l'aide de l'enregistrement des macros pour convertir les données d'une colonne en DATE, ça a fait ça:

Code:
Sub convertir()
' convertir Macro
    Sheets("Sheet0").Select
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub

Quand j'ai fait la manipulation manuellement pour l'enregistrement, le résultat est bon.

Par contre quand j'ai essaye de lancer ma macro, certaines dates ne sont pas converties et d'autres sont mal converties (ex: ça me change le 12/03/2014 par 03/12/2014)

En PJ un fichier d'exemple, je vous remercie de votre aide.

Santiago
 

Pièces jointes

  • report excel download.xls
    37 KB · Affichages: 169

Pierrot93

XLDnaute Barbatruc
Re : Problème format date suite macro VBA convertir

Bonjour,

modifie le 2ème élément du tableau
Code:
FieldInfo:=Array(Array(1, 1), Array(2, 1)),

reprend le format utilisé dans le fichier source. ci dessous les différentes constantes et valeurs équivalentes
Nom Valeur Description
xlDMYFormat 4 Format de date JMA.
xlDYMFormat 7 Format de date JAM.
xlEMDFormat 10 Format de date AMJ.
xlGeneralFormat 1 Général.
xlMDYFormat 3 Format de date MJA.
xlMYDFormat 6 Format de date MAJ.
xlSkipColumn 9 La colonne n'est pas analysée.
xlTextFormat 2 Texte.
xlYDMFormat 8 Format de date AJM.
xlYMDFormat 5 Format de date AMD

bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format date suite macro VBA convertir

Bonjour,

je l'aurais plutôt placé comme ceci dans ton code, A voir si c'est la bonne colonne, sinon ton code renvoyait un format "standard" :
Code:
FieldInfo:=Array(Array(1, xlDMYFormat), Array(2, 1))
 

Santiago

XLDnaute Nouveau
Re : Problème format date suite macro VBA convertir

Merci Pierrot,

Par contre, je me retrouve quand même avec les données inversées, notamment l'exemple ce sont les lignes du 12 mars qui s'affichent comme étant du 03 décembre.

Je ne comprends vraiment pas comment corriger cela
 
Dernière édition:

Santiago

XLDnaute Nouveau
Re : Problème format date suite macro VBA convertir

Je ne comprends pas vraiment à quoi ça correspond l'information contenue dans "Array". Comment puis-je savoir si c'est la bonne colonne comme vous dites?
Car à l'heure actuelle le résultat est toujours le même
 

Modeste geedee

XLDnaute Barbatruc
Re : Problème format date suite macro VBA convertir

Bonsour®
tu ne nous dis pas d'où viennent les données...
appliquer la macro après un import la macro est inefficace car Excel aura préalablement ("by design") convertit en format interne les dates qu'il aura reconnu, seules seront alors modifiées les dates de type texte.

s'il s'agit réellement d'un import, c'est au moment de celui-ci qu'il faut intervenir, notamment en indiquant au niveau de chaque champ , le format lu (données> convertir >etape 3 )
 

Santiago

XLDnaute Nouveau
Re : Problème format date suite macro VBA convertir

Bonjour,

Merci Pierrot pour l'info sur Array. Si j'ai bien compris la première colonne est la date et la 2ème l'heure.

Bonjour Geedee,

Les données sont téléchargés d'un logiciel (par contre je télécharge en format xcl, pas besoin de faire une importation des données).

Cependant, je ne comprends pas pourquoi avec la manipulation manuelle Excel n'a aucun souci et dès que l'on essaye d'automatiser tout avec une macro il ne sait plus comment lire les dates.

Car le résultat est en effet en format JMA, par contre il s'est trompé et affiche des Mois comme des jours.
 

Modeste geedee

XLDnaute Barbatruc
Re : Problème format date suite macro VBA convertir

Bonsour®
Cependant, je ne comprends pas pourquoi avec la manipulation manuelle Excel n'a aucun souci et dès que l'on essaye d'automatiser tout avec une macro il ne sait plus comment lire les dates.

parcequ'en manuel on utilise l'interface langue locale, alors qu'en macro on utilise l'interface VBA =langue US

en cas d'utilisation d'une macro d'import "Txt"
ex:
Code:
Workbooks.OpenText filename:="DATA.TXT", _
    dataType:=xlDelimited, tab:=True, etc...

après avoir défini les :
 Array(Array(3, 3), Array(1, 2))etc...

on peut ajouter le paramètre :
Code:
 , Local=True
qui permet l'utilisation des options locales
 

Santiago

XLDnaute Nouveau
Re : Problème format date suite macro VBA convertir

J'ai mis Local:=True dans mon code mais j'obtiens un message d'erreur:

Erreur d'exécution '1004':

Erreur définie par l'application ou par l'objet

Il faut le mettre où pour que ça marche?

Code:
Sub convertir()
'
' convertir Macro
    Sheets("Sheet0").Select
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, xlDMYFormat), Array(2, 1)), Local:=True, TrailingMinusNumbers:=True
End Sub
 

Santiago

XLDnaute Nouveau
Re : Problème format date suite macro VBA convertir

Rebonjour Pierrot, Geedee,

Je crois que je ne me suis pas exprimé tout à fait bien dans mon premier message.

Cette macro me transforme une cellule qui dit 12/03/2014 (12-mars) en 03/12 (03-déc). Et les dates qui vont au-délà du 12 ne sont pas prises en compte en tant que dates.
 

Discussions similaires

Statistiques des forums

Discussions
312 192
Messages
2 086 056
Membres
103 110
dernier inscrit
Privé