Date Francaise - Anglaise

  • Initiateur de la discussion Spectroms
  • Date de début
S

Spectroms

Guest
Bonjour,

Voici mon problème :
Quand je copie en vba les dates ben voici le résultat. Les dates sont converties en date anglaise! Comment corriger le problème ? Merci davance.
Originale :
10/08/2004
12/08/2004
16/08/2004
19/08/2004
31/08/2004

Copie

08/10/2004
08/12/2004
16/08/2004
19/08/2004
31/08/2004
 
T

titcoeur

Guest
je ne comprends pas trop ce que tu entends par copier une date dans VBA.

Mais supposons que tu entres une date dans un box vba, pour ensuite l'entrer comme 'date française' dans une cellule excel, tu dois passer par le code

jour = Day(TxtB_dateeffet.Value)
mois = Month(TxtB_dateeffet.Value)
année = Year(TxtB_dateeffet.Value)

sheets(1) .Range('B1') = DateSerial(année, mois, jour)


qui, d'abord, capte l'info dans la txtBox puis la transforme en date dans la cellule voulue (B1 dans mon exemple).

Est-ce que ça répond à ta question ??

NB: TxtB_dateeffet est le nom de ma text box

A+
 
S

Spectroms

Guest
Bonjour titcoeur,

Oui tu réponds tout à fait à ma question.
La copie se fait avec la commande :
Dim Tmp as String
Tmp = '10/08/2004'
Sheets(2).Cells(Num, Colonne).Value = Tmp

Et ca me le transforme !
Bon je vais faire comme tu m'as indiqué bien que ca m'embete un peut car Tmp pour contenir autres choses que des dates..
C'est bête que Excel gère mal les dates française...mais bon ca ne sera pas la 1er fois qu'il gère mal quelques choses :p

Merci encore
 
S

Spectroms

Guest
Bonjour Pascal76,

Ton codage fonctionne très bien.
Bon pour les string pur, ta fonction retourne rien donc j'ai du faire un petit truc si Tmp n'était pas une date.
Mais sinon c'est parfait merci !
 

nono59

XLDnaute Nouveau
Bonjour,

En effet, j'ai un problème similaire...

J'ai un programme comptable qui permet de copier les écritures dans le presse-papier, quand je les colle manuellement dans une feuille excel, pas de problème, les dates sont au bon format, seulement quand je les colle au moyen d'un code VBA 'Selection.paste' alors là patatrac, toutes les dates sont interprètées au format anglais, enfin quand je dis toutes, non, seules les dates où le jour en première position peut être interprété comme un mois, en fait toutes les dates dont le jour est inférieur ou égal à 12.

Bizarre !!! quelqu'un a t-il une solution ?
 
C

Canardodo

Guest
Bonjour,
J'ai pour ma part résolu le pb de la façon suivante:
tu mets la cellule cible au format nombre (sans virgule!), puis
tu copies le numéro du jour et tu l'affiches ensuite au format voulu. Ce qui transforme en mm tps la valeur de la cellule

Range('A2').NumberFormat = '0'
Range('A1').copy '(par ex.)
Range('A2').PasteSpecial Paste:=xlValue
Range('A2').NumberFormat = 'dd-mm-yy'

OU également
Range('B1:B5').NumberFormat = '0'
Range('B1:B5').Value = Range('A1:A5').Value
Range('B1:B5').NumberFormat = 'dd-mm-yy'


( ou 'dd-mmmm-yyyy' , au choix.)

ça résoud tous les blèmes!

Bye
 

Discussions similaires

Statistiques des forums

Discussions
312 715
Messages
2 091 288
Membres
104 836
dernier inscrit
baxx86