Format date, heure et macro

  • Initiateur de la discussion Filipus
  • Date de début
F

Filipus

Guest
Bonjour tout le monde

J'ai un petit probème de format de date et heure.
Je reçois des fichiers à traiter qui on un champ unique date, heure, que je transforme par une macro en deux colonnes : date et heure.

Mon probème: parfois les données a traiter arrivent ainsi:
'15-APR-04 09:31:35' ......et sont au format texte.
ou
'04/02/2005 08:49' ....... au format date (jj/mm/aa/ hh/mm)

Pour le premier cas, j'ai fait une macro et j'arrive à résoudre le problème sans souçi.
En revanche dans le deuxième cas, jsi j'utilise la fonction 'convertir' de excel, aucun souci, tout se passe bien, mais si je rentre ce code dans une macro, la ça merdouille, car il me met l'heure en englais et rajoute une colonne avec AP ou PM bien sûr.
En fait la macro n'a pas le même résultat que l'action manuelle.!!!!!

Voilà mon souci, je tourne en rond. J'ai une idée peut-être, plutot que de convertir , recopier les caractères de l'heure dans une colonne.

En fait j'aimerais, si c'est possible, avoir en vba un code qui réagisse aussi bien dans un cas que dans l'autre.

J'espère que mon exposé un peu long sera clair.
Merci pour aide ou conseils.
Bonne journée à tous.
Philippe
 

ChTi160

XLDnaute Barbatruc
Salut 'Filipus'
Oups bonjour le Forum en pièce jointe un exemple
[file name=ConversionHeureV1xls.zip size=7069]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ConversionHeureV1xls.zip[/file]

Message édité par: ChTi160, à: 17/03/2005 09:53
 
Dernière édition:
F

Filipus

Guest
Re à tous
Bonjour chti160

Encore toi qui vient à mon secours, merci mille fois.
Quand je vois le code que tu me proposes, je le trouve si évident et si simple.... :eek:hmy:
Je te dis pas moi les lignes que j'ai dû écrire pour rien.....

Mais enfin ça me permet de chercher et d'apprendre, grace à des gens comme toi.

Je m'empresse d'insérer ta macro dans mon code.

Merci encore.
Bonne journée

Philippe
 
F

Filipus

Guest
Bonjour à tous le monde

Chti 160, Help (pardon).
J'ai crié bien vite que c'était bon. C'est vrai que ton code est génial.
Mais, .. ( et oui ya un mais), lorsque dans ton exemple je déplace la colonne en B ou C, et après bien sûr avoir modifié ton code (je remplace les lettres A par B ou C), le résultat n'est plus ce que l'on voudrait. Je ne comprends pas, je cherche désespérement depuis hier midi.
Merci

Bonne journée à tous
Philippe
 

ChTi160

XLDnaute Barbatruc
Salut'Filipus'
voici le code avec explications


Sub TransformeDate()
Dim derlgn As Integer
Dim cel As Range
derlgn = Range('A500').End(xlUp).Row 'recherche de la dernière ligne de la colonne ou se trouvent les Dates ici colonneA je remonte de la ligne 500 vers le Haut 'xlUp'
For Each cel In Range('A3:A' & derlgn) 'pour chaque cellule de la plage A3:A derlgn derlgn donnera la dernière ligne de la plage
cel.Offset(0, 1) = Format(cel.Offset(0, 1), 'dd/mm/yy')'ici je format la donnée
cel.Offset(0, 1) = cel.Value 'ici je reporte 1 colonne à droite de la colonne A
cel.Offset(0, 2) = Format(cel.Offset(0, 1), 'hh:mm')ici je format la donnée
cel.Offset(0, 2) = cel.Value'ici je reporte 2 colonnes à droite de la colonne A
Next
End Sub
tes colonnes doivent être formatées B en Date et C en heure par exemple
sinon donnes moi les colonnes ou tu veux mettre tes données
colonne ou se trouvent tes dates et les références des colonnes destination

Message édité par: ChTi160, à: 18/03/2005 13:30
 
F

Filipus

Guest
Bonjour Chti160

On ne peut mieux comme explication.
En fait dans mes tableaux que je traite, il faut, avant de lancer ta macro que j'insére deux colonnes à la droite de mes données et que je les formate en 'date' et 'heure' .

Voilà pourquoi je n'y arrivais pas, je ne formatais pas avant mes colonnes.
Ce coup cela semble parfait.

Merci pour ton aide précieuse et a patience. :)

Bonne journée à tous
Philippe
 

ChTi160

XLDnaute Barbatruc
re
tu peux si tu veux éviter de formater tes colonnes
mettre
cel.Offset(0, 1) .numberFormat='dd/mm/yy'
au lieu de
cel.Offset(0, 1) = Format(cel.Offset(0, 1), 'dd/mm/yy')
et
cel.Offset(0, 2).NumberFormat='hh:mm'
au lieu de
cel.Offset(0, 2) = Format(cel.Offset(0, 1), 'hh:mm')
 

Chiarmen

XLDnaute Nouveau
Re : Format date, heure et macro

Bonjour tout le monde,

J'ai exactement le même problème que Filipus et je vois qu'il a été résolu par Chti160 qui donne la solution en pièce jointe, sauf que ça n'existe plus!

Du coup, pouvez-vous m'aider à résoudre ce problème svp?

Merci par avance!! :)
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino