Sélection date avec combobox 12/01/2015 mais dans cellule 1 déc.

Linebaker Messages postés 53 Statut Membre -  
Linebaker Messages postés 53 Statut Membre -
Bonjour,

Lorsque je sélectionne une date à l'aide d'un combobox (12/01/2015), la date copiée dans le cellule est le 1 déc. 2015.

Donc, comment avoir la date 12 janv. 2015 ?

Merci


A voir également:

8 réponses

NHenry Messages postés 15479 Statut Modérateur 366
 
12/01/2015
jj/mm/aaaa (france)
ou
mm/jj/aaaa (anglophone)
?
0
Linebaker Messages postés 53 Statut Membre 1
 
Bonjour, NHenry,

Je sélectionne 12/01/2015 (jj/mm/aaaa) et je veux aaaa/mm/jj pour qu'il soit affiché 12 janv. 2015.

Voici ma ligne de code pour alimenter le combobox :

If Controls("Combobox" & I).ListIndex = -1 Then Controls("Combobox" & I).AddItem cell

et la ligne de transfert : ActiveCell.Offset(0, 1) = CDate(ComboBox16)

Merci de ton aide
0
NHenry Messages postés 15479 Statut Modérateur 366
 
As-tu regardé la fonction Format$ ?
format$(CDate(...),"...")
0
Linebaker Messages postés 53 Statut Membre 1
 
Bonjour NHenry,

J'ai changé la ligne :

ActiveCell.Offset(0, 1) = Format$(CDate(ComboBox16), "dd mmm yyyy")

mais j'ai toujours le 1 déc. 2015 qui s'inscrit dans la cellule.

Est-il possible que mon combobx qui s'alimente avec les dates dd mmm yyyy convertisse ce format car lorsque je choisis une date ce qu'il y a dans le combobox est dd/mm/yyyy donc pas le même format que la cellule de départ ?

Merci
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Espionnes la valeur retournée par CDate et compares-la à la valeur de Now, tu verra si l'inversion est faite lors du CDate ou si c'est la cellule qui inverse.
0
Linebaker Messages postés 53 Statut Membre 1
 
Salut,

CDate me donne 2015-11-01 et combobox me donne 11/01/2015.

Comment on corrige cela ?

Merci
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Apparemment, le CDate prend le format de ton combobox comme mm/jj/aaaa.
Je pense donc qu'un simple manipulation de chaine pour transformer jj/mm/aaa en mm/jj/aaa serait suffisant pour corriger ton problème.
Voir la fonction : Mid$(...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Linebaker Messages postés 53 Statut Membre 1
 
Salut,

Je ne vois comment MID$() pourrait résoudre le problème ???

Merci
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Avec Mid$, tu reformatte la chaine, en inversant jj et mm.
Puis tu passe le tout à CDate.
0
Linebaker Messages postés 53 Statut Membre 1 > NHenry Messages postés 15479 Statut Modérateur
 
Alors là je ne sais vraiment pas comment faire.
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
0
Linebaker Messages postés 53 Statut Membre 1
 
Rien à faire, mon combobox dd mmm yyyy se transfert toujours en mmm dd yyyy.
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Quel code de changement de format as-tu utilisé ?
As-tu regardé le lien de Le Pivert ?
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bonjour,
Salut tout le monde,

Bonne année à tous.

Que te réponds ce test ?
Sub Test()
MsgBox Application.International(xlMDY)
End Sub

0
Linebaker Messages postés 53 Statut Membre 1
 
Salut,

La réponse : Faux.

Probablement mes paramètres régionnaux cause ce problème, mais comme c'est un fichier partagé avec chacun ses paramètres, comment forcer le format ?

Merci
0
pijaku Messages postés 13513 Statut Modérateur 2 763 > Linebaker Messages postés 53 Statut Membre
 
Non, faux signifie que tes dates sont paramétrées au format dd/mm/yyyy. Donc c'est tout bon.
A mon avis, l'erreur vient du fichier.
Peux tu nous le faire passer?
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
Linebaker Messages postés 53 Statut Membre 1 > pijaku Messages postés 13513 Statut Modérateur
 
Salut,

Voici le lien : https://www.cjoint.com/?0AnqMbGAbDc

Merci
0
pijaku Messages postés 13513 Statut Modérateur 2 763 > Linebaker Messages postés 53 Statut Membre
 
Le fichier fournit fonctionne parfaitement chez moi.
ActiveCell.Value = CDate(ComboBox16)
donne le résultat voulu...
0
Linebaker Messages postés 53 Statut Membre 1 > pijaku Messages postés 13513 Statut Modérateur
 
Malheureusement pas ici. De quelle manière je pourrais forcer le format ? Je n'ai plus d'idée.

J'ai essayé : ActiveCell.Offset(0, 1) = formant(CDate(ComboBox16) , yyyy mm dd mais sans succès.
0