Liste déroulante (ComboBox) contenant date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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: 212
  • Liste.jpg
    Liste.jpg
    33.5 KB · Affichages: 236
  • Liste.jpg
    Liste.jpg
    33.5 KB · Affichages: 242
Re : Liste déroulante (ComboBox) contenant date

Tiens 🙄
Fichier zippé moins de 20 ko 🙄
A force de bidouiller les propriétés des contrôles 🙄
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+
 
Re : Liste déroulante (ComboBox) contenant date

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

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
2 K
Retour