Liste déroulante (ComboBox) contenant date

Everlast03

XLDnaute Occasionnel
Bonjour,

J'ai un petit problème, j'ai créé une liste déroulante (ComboBox) qui contient des dates du type (jan.-09 / févr.-09 [...] mai-11)

Mon code est le suivant :
Code:
Private Sub ComboBox3_Change()
ComboBox3 = Format(ComboBox3, "mmm-yy")
Range("A50") = CDate(ComboBox3.Value)
End Sub

Mais lorsque je sélectionne "jan.-09" il m'affiche "jan.-10" et pareille pour févr.-11 il m'affiche "févr.-10".

Pourriez-vous me dire d'où cela provient-il ?
 

Pièces jointes

  • Liste.jpg
    Liste.jpg
    33.5 KB · Affichages: 207
  • Liste.jpg
    Liste.jpg
    33.5 KB · Affichages: 231
  • Liste.jpg
    Liste.jpg
    33.5 KB · Affichages: 237

steph_60

XLDnaute Nouveau
Re : Liste déroulante (ComboBox) contenant date

Tiens :rolleyes:
Fichier zippé moins de 20 ko :rolleyes:
A force de bidouiller les propriétés des contrôles :rolleyes:
kjin

bonjour

le poblème est le format standard américain ...par rapport au format français
français " jour/mois/années" américain " mois/jour/année"

il faut réaliser une fonction qui réalise cette conversion

voici une méthode

'Definir le tableau pour le comboBox
'exemple
Const Tab_Date As Variant = "jan.-09; févr.-09; mars.-09; avr.-09; mai.-09; jui.-09; juil.-09; août.-09;sept.-09;oct.-09;nov.-09;déc.-09"

Private Sub ComboBox3_Change()

Dim cvDate As Date

Feuil1.Activate
Feuil1.Select
Feuil1.Range("A50").Select
' formatage de l'affichage de la cellule
Selection.NumberFormat = "mmm-yy"
' formatage Américain --> Francais
cvDate = FormatageDate(ComboBox3.Value)

Feuil1.Range("A50") = FormatDateTime(cvDate, vbShortDate)
End Sub

Private Sub UserForm_Initialize()

Dim Vdate As Variant

'transforme le tableau defini en constante en un tableau de date
LeTableau = Split(Tab_Date, ";")


For Each Vdate In LeTableau
ComboBox3.AddItem (Vdate)
Next Vdate

'initialise la première valeur affichée
ComboBox3.Value = LeTableau(0)

End Sub

Private Function FormatageDate(ladate As Variant) As Date
'=======================================================================================
'avant conversion date format exemple : jan.-12 --> 01/12/2010
'avec la fonction jan.-12 --> 01/01/2012
'
'=======================================================================================
Dim cvDate As String

Dim Mois As String
Dim Annee As String
Dim index As Integer

cvDate = CStr(ladate)

index = 0
LeTableau = Split(Tab_Date, ";")

For Each ScanDate In LeTableau
index = index + 1
If cvDate = ScanDate Then
Mois = CStr(index)
End If
Next

Annee = CStr((Mid(ladate, Len(ladate) - 1, 2)))
Annee = "20" & Annee

FormatageDate = Mois & "/01/" & Annee
End Function

en espérant que ces quelques lignes vont t'aider
A+
 

Everlast03

XLDnaute Occasionnel
Re : Liste déroulante (ComboBox) contenant date

Je galère vraiment, y'a rien qui marche :confused:

Pouvez-vous bosser sur ce fichier (Pièce Jointe) et me le renvoyer ?
En me précisant ce que je dois faire (ajouter des listes ou autre ...)
Je débute et j'avoue que j'ai un peu de mal là...

Merci d'avance ;)
 

Pièces jointes

  • Classeur1.xls
    37.5 KB · Affichages: 68
  • Classeur1.xls
    37.5 KB · Affichages: 63
  • Classeur1.xls
    37.5 KB · Affichages: 77

ChTi160

XLDnaute Barbatruc
Re : Liste déroulante (ComboBox) contenant date

Salut
Bonjour le Fil
Bonjour le forum

arff dans un premier temps ta façon de nous demander un coup de main , va en décourager plus d'un , Attention !!!!

Pouvez-vous bosser sur ce fichier (Pièce Jointe) et me le renvoyer ?

En pièce jointe , j'ai repris ce que javais mis dans mon premier fichier
en ayant pris soin de Vider la propriété ListFillRange qui est une des méthode de remplissage d'un Combobox

Le Fichier : Regarde la pièce jointe Combobox Classeur1-1.zip

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87