Collage de données & date au format américain ...

Pio

XLDnaute Nouveau
Bonsoir à toutes et à tous,

Tout d'abord, permettez-moi de vous souhaiter une bonne et heureuse année 2010 !

Bon, si je viens vers vous, ce n'est pas seulement pour les vœux, mais aussi pour un petit soucis que j'ai sur une macro Excel.
Je dois en fait récupérer des jeux de données provenant de thermomètres à mémoire. Ceux-ci prennent une mesure toutes les 15 minutes, et stockent la valeur de 4 thermomètres, ainsi que la date & heure de la mesure.

L'application de dépouillement fournie par le constructeur ne permet pas de générer directement un fichier Excel ou csv (ça aurait été trop simple :p ), mais seulement de sélectionner les données et de les coller sur une feuille Excel.

Comme j'ai pas mal de thermomètres, j'ai décidé d'écrire une 'tite macro pour récupérer les données de chaque thermomètre (après les avoir copié à partir du logiciel constructeur) dans sa feuille.

J'en viens à mon problème : quand je fais les opérations de copier/coller à la main, tout fonctionne parfaitement.
Malheureusement, quand je colle les données dans une feuille Excel en passant par une macro, les dates passent au format américain, et les mesures sont reconnues comme du texte.

Pour les mesures, pas de soucis je sais les transformer. Par contre, pour les dates, je sèche !


Pour vous aider à m'aider :)D), je vous fais suivre un fichier texte contenant un exemple d'un jeu de données, ainsi qu'une feuille Excel contenant simplement la macro pour coller les valeurs.

Pour les données, il suffit d'ouvrir le fichier texte, tout sélectionner (Ctrl+A), et copier (Ctrl+C). Ça fait la même chose qu'avec mon logiciel constructeur.
Une fois les données copiées, ouvrir le fichier Excel, et lancer la Macro1 (qui n'est ni plus ni moins qu'un simple "ActiveSheet.Paste").

Vous remarquerez en colonne B la date des mesures qui commence le 12/08/09, alors qu'elles datent du 08/12/09 !

Merci par avance pour votre aide ...

Jérôme aka Pio
 

Pièces jointes

  • Exemple forum.zip
    42.5 KB · Affichages: 52
  • Exemple forum.zip
    42.5 KB · Affichages: 49
  • Exemple forum.zip
    42.5 KB · Affichages: 50

Pio

XLDnaute Nouveau
Re : Collage de données & date au format américain ...

Bonsoir,

Ah non non, le fichier texte c'est moi qui l'ai créé pour vous donner un exemple !

L'application du constructeur des thermomètres ne génère pas de fichier texte, elle permet uniquement de copier les données dans le presse-papier Windows.

Donc, quand tu copies toutes les données de mon fichier texte, c'est comme quand je les copie de l'application au boulot ...
 
Dernière édition:

Pio

XLDnaute Nouveau
Re : Collage de données & date au format américain ...

Help, I need somebody,
Help, not just anybody,
Help, you know I need someone, heeeeeelp !

:D:D:D:D

Bon, trève de plaisanterie, venons-en aux faits ...

Bonjour à toutes et à tous !

Si je reviens avec mon soucis, c'est que je n'ai toujours aucune solution à mon problème (d'où mon Heeeeeelp :p). Et j'en ai assez de tout me taper à la main toutes les semaines.

J'avais presque trouvé une solution (ou plutôt une magouille) en la fonction "Données/Convertir.../" et forcer le format de la colonne en "MJA".
Ainsi, Excel réinverse tout seul le mois et le jour tout nickel.

Malheureusement, la fonction marche impeccable en manuel, mais dès que j'essaie d'enregistrer la macro de la fonction, ben ça marche plus. Voilà ce que l'éditeur VBA me sort :

Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 3)

Il me semble bien que je ne vois aucunement le fonction qui m'intéresse (en l'occurrence l'inversion du mois et du jour) ou alors je ne la reconnais pas.
Serait-ce l'enregistreur de macro qui coupe un morceau ?

Quelqu'un saurait m'écrire le petit bout de code pour la fonction "Données/Convertir.../" etc ... citée plus haut ?

Ou mieux, quelqu'un aurait une solution plus élégante pour mon problème ?


Mille mercis pour votre aide


Jérôme qui voudrait vraiment faire fonctionner cette satanée macro ...
 

Pio

XLDnaute Nouveau
Re : Collage de données & date au format américain ...

Bonsoir Pascal, bonsoir Staple,

Merci pour vos réponses.

En fait, je viens de comprendre la macro enregistrée par Excel (du moins, vraiment en partie, c'est encore un peu du chinois pour moi ... passons !).

En fait, l'argument de conversion "MDY" était là depuis le début, je ne l'avais tout simplement pas reconnu. C'était "FieldInfo :=Array(1, 3)" ... mouais super clair.
Le 3 pour MDY et normalement 4 pour DMY.

J'ai donc tout simplement remplacé le 3 par un 4 ce qui donne :

Code:
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, [B]4[/B])

Et ça fonctionne !!


Merci Staple, c'est ton bout de code qui m'a mis sur la bonne voie.
Yahou ! Content le Jérôme ! :p

Bon, plus que le reste de la macro à finaliser ... pfiou !
 

Pio

XLDnaute Nouveau
Re : Collage de données & date au format américain ...

Argh !

Que vois-je quelques lignes sous mon post ? Un autre qui y ressemble étrangement !
Et Pierrot93 y donne une solution (il y a à peine 2 heures !) qui ressemble étrangement à celle sur laquelle je suis tombé, mais en plus épuré ... enfin mieux quoi !
Voilà donc ce que je vais utiliser :

Code:
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(0, 4)

Plus court, plus propre ...
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote