Format de date d'une Combobox

J

JCA06

Guest
Bonjour à tous,

J'ai un petit soucis que je n'arrive pas à régler : la plage de ma combobox est une plage de date qui se présentent au format date quand je choisi la valeur dans la liste, mais qui se présente en nombre dans la combobox quand je la sélectionne.

Exemple, je choisi 01/07/2004 dans la liste et quand je sélectionne il s'affiche 38169.

Je ne trouve rien dans les propriétés...

Merci de bien vouloir m'aider.
 
L

lo

Guest
Bonjour,

Sauf erreur de ma part et si j'ai bien saisi ton problème il s'agit d'un problème de formattage. Le plus simple est de modifier la colonne des cellules correspondant à une date en précisant à excel qu'il s'agit de date.
Pour ce faire, clic droit sur la cel, format de cel, personnalisé : jj:hh:mm:ss

Si cela ne te suffit pas, c'est que je n'ai pas compris la question ;) dans ce cas, colle ton .zip dans ton post

'micalement,
loic.
 
@

@+Thierry

Guest
Bonjour JCA, le Forum

J'ai déjà rencontré ce problème et en fait tout dépend d'où viennent tes dates...

Exemple 1
Private Sub UserForm_Initialize()
Dim Jours As Long
For Jours = 37987 To 38352 'pour un calendrier du 01/01/2004 au 31/12/2004
Me.ComboBox1.AddItem Format(Jours, ""DD/MM/YYYY"")
Next
End Sub
Là aucun souci !

Exemple 2
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 366 '(les dates sont de A1 à A366)
Me.ComboBox1.AddItem Format(Cells(i, 1), "DD/MM/YYYY")
Next
End Sub
De nouveau aucun souci !!

Exemple 3
Private Sub UserForm_Initialize()
Dim MyArray As Variant
MyArray = Range("A1:A366")
Me.ComboBox1.List() = MyArray
End Sub
Arf Ein Kleind Souzi, Artung !! On est en date Yankee !!! lol

Exemple 3Bis
Private Sub UserForm_Initialize()
Dim MyArray As Variant
Dim i As Integer
MyArray = Range("A1:A366")
For i = 1 To UBound(MyArray)
Me.ComboBox1.AddItem Format(MyArray(i, 1), "DD/MM/YYYY")
Next
End Sub
Thats Good ! No more soucaiiie !!!

Exemple 4
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "Sheet1!A1:A366"
End Sub
Arf Nicht Good !... Arf Arf Pas de Exemple 4 Bis !! lol

Alors on va faire un Patch comme MicroSoft !!
Private Sub ComboBox1_Change() '<<<< The Big Patch !!
Me.ComboBox1 = Format(Me.ComboBox1, "DD/MM/YYYY")
End Sub

Voilà JC !!! Mais je te vois venir après avec la prochaine question...

En exclusivité, Prochaine Question de JCA !!!
OK j'ai bien fait tout ceci Thierry et ça fonctionne, mais quand je retourne la valeur sélectionnée dans ma ComboBox sur la Feuille Excel, ce n'est pas pris pour une Date mais du Texte"

Hi hi hi hi...
En exclusivité, Ma Prochaine Réponse à JCA !!!
Alors tu dois reconvertir ta valeur en date... Exemple :
Private Sub CommandButton1_Click()
Range("C1") = CDate(Me.ComboBox1)
End Sub


Hi hi hi hi, c'est la chaleur, je fais le fou fou aujourd'hui !! (voir ma macro pour C@thy) lol
Bonne Après Midi
@+Thierry
 
J

JCA06

Guest
Bonjour Lo, Thierry, le Forum,

Je me rends compte que la question n'était pas forcément claire.
Je la refais avec plus d'exemple :

Private Sub UserForm_Initialize()
Dim Plage As String

With Sheets("Tables")
Plage = .Range("A4:B" & .Range("B65536").End(xlUp).Row).Address
End With

With Me.ComboBox1
.ColumnCount = 2
.ColumnWidths = "60;0"
.RowSource = "Tables!" & Plage
End With
End Sub

De ce fait, ma Combobox me propose les valeurs suivantes, présentées au format date :
01/01/2002
01/11/2002
01/09/2003
01/01/2004
01/07/2004

Là, lorsque je choisi une date en cliquant, la date est remplacée par sa valeur.

Mais Thierry est arrivé ! Et son patch est très efficace, peut-être même plus que ce qu'il pensait, car la valeur est bien prise en compte et exploitée par la fonction RECHERCHEV qui vient après !

Merci Thierry, et merci à loric pour avoir essayé !!

A+
 

Discussions similaires

Réponses
2
Affichages
313

Statistiques des forums

Discussions
312 294
Messages
2 086 916
Membres
103 404
dernier inscrit
sultan87