enregistrent date d'une combobox dans une feuille

yves_passe

XLDnaute Junior
bonjour à tous,

j'ai trouvé sur le site plusieurs codes qui m'ont permis de faire ce que je
voulais, sauf que j'ai constaté une erreur et je n'arrive pas à la solutionner avec les archives !

sachant que je ne connait que ce que je peux trouver ici !


depuis ma feuille bdd j'initialise une usf héhéhé avec l'aide du forum la date s'affiche correctement dans le combobox (génial c'est ce que je voulais)

l'étape suivante c'est d'enregistrer les données saisies dans le usf sur la feuille "enregistrement" et voilà le bug enfin mon ignorance en VBA j'ai lu et relus les posts sur les dates.

ce qui se passe:
C'est que quand je selectionne janvier 2008 dans la combobox (en principe 2/01/08 affiché janv.08) elle est enregistrée dans la cellule 8/01/07
Les autre dates sont aussi fausses le jour est modifié. le 7 au lieu du 2 ???

J'utilise excel 2003 sur pc
voilà j'espère que je suis clair et qu'une âme xld charitable pourrais m'aider

ci joint extrait de mon fichier
merci
Yves
 

Pièces jointes

  • impayé4.xls
    40 KB · Affichages: 74

Luki

XLDnaute Accro
Re : enregistrent date d'une combobox dans une feuille

comme tu dis: héhéhé!

J'ai eu un problème similaire il y a trois jours, (le 7/02/2007 devenait le 2 juillet 2007).J'ai résolu en passant la valeur du combo à la feuille via une conversion au format date :

Range("A1").value = Cdate(combo.value)

Ca devrait peut-être suffire.

Pourquoi? Vas- tu me répondre... Je n'en sais rien :p, mais j'imagine que par défaut, l excel interprète la date au format anglo-saxon. Mais je préfère avoir des précisions de la part des spécialistes...:(

Bonne soirée

Edit: Pas vu Eric, bonne soirée à toi aussi.
 

Besnard68

XLDnaute Occasionnel
Re : enregistrent date d'une combobox dans une feuille

Bonsoir Yves, RENAUDER et Luki,

Même sans être un 'spécialiste' de Excel, et ayant eu les mêmes problèmes avec les dates, je confirme ce que dit Luki ; VBA prend effectivement les dates en format anglosaxon.

Pour ma part, lorsque Je récupère des dates de Excel vers VBA, j'utilise la fonction 'CDate',

et lorsque je renvoie une date de VBA vers une feuille excel, je converti préalablement avec la fonction 'CVDate'.

Cordialement
 

yves_passe

XLDnaute Junior
Re : enregistrent date d'une combobox dans une feuille

Merci à tous,

donc si j'ai bien compris c'est un problème de conversion entre les date format anglo saxon et français ! mais ce que je ne comprend pas c'est que l'affichage dans la combobox est correct ???


bon j'essaye... je reviens plus tard ....

Yves
 

yves_passe

XLDnaute Junior
Re : enregistrent date d'une combobox dans une feuille

RE Bonsoir OH XLDNOTE

ca marche !

bon celà merite une explication
j'ai utilisé le code suivant pour que l'affichage de la combobox soit correct :

Public flag As Boolean
Private Sub ComboBox1_change()
'pour afficher la date correctement dans une box attention non résolu pb de format à l'enregistrement
If flag Then Exit Sub
flag = True
ComboBox1 = Format(ComboBox1, "mmm.-yy")
flag = False
End Sub

he hop l'affichage est bon

mais voilà celà provoque les petits désagréments que j'ai cité plus haut pb d'enregistrement

grâce à l'aide des mes chers xldnotes
j'ai essayé leurs solutions et patatrac ca ne voulais toujours pas marcher comme d'hab ...

bon j'ai fini par trouver et je tenais à en faire part à toute la communauté.

mes premières recherches m'ont permise de trouver le petit code ci dessus parfait pour l'affichage dans la combo mais ne convient (en l'état) pas pour l'enregistrement dans une
feuille
par contre la solution cdate marche

au fait quelle est la différence entre cdate et cvdate ?

hihihi encore une question.

Bonne nuit à tous
 

RENAUDER

Nous a quitté
Repose en paix
Re : enregistrent date d'une combobox dans une feuille

Bonjour,
Penses à lire l'aide (F1).
En voici l'explication :
La fonction CDate reconnaît les formats de date définis dans les paramètres régionaux de votre système. L'ordre des jours, mois et années risque de ne pouvoir être défini si les données sont fournies dans un format différent des paramètres de date reconnus. En outre, les formats de date complets précisant le jour de la semaine ne sont pas reconnus.
Pour des raisons de compatibilité avec les versions antérieures de Visual Basic, il existe une fonction CVDate, dont la syntaxe est identique à celle de la fonction Cdate. Cependant, la fonction CVDate renvoie une donnée de type Variant et de sous-type Date et non une véritable donnée de type Date. Dans la mesure où il existe désormais un type Date intrinsèque, la fonction CVDate n'est plus nécessaire.
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson