Format combo box.

are

XLDnaute Nouveau
Bonjour le forum.

Je suis actuellement en train de mettre en forme une combo box pour un fichier et je cale un peu concernant le format date des valeurs de la combobox de mon user form, j'ai donc besoin d'un coup de pouce.
Dans mon fichier j'ai une colonne de dates(bcp de doublons) sous le format mmm-yy (ex jan-12 ), que je voudrais répertorier dans une combobox d'un userform(pour permettre aux utilisateurs de sélectionner une date). J'ai réussi a "copier" un code trouvé sur ce forum pour répertorier les valeurs dans un dico puis le reverser dans la combobox(cela afin d'éliminer les doublons) . seul souci la combobox présente les valeurs en formats 31/XX/XXXX (ce sont les valeurs dans les cases) sans le format mmm-yy. Ci-dessous mon code et ci joint le fichier

Private Sub UserForm_Activate()
Dim dico, c
Set dico = CreateObject("Scripting.Dictionary")
For Each c In .Range("J5:J" & .[J65536].End(xlUp).Row)
If Not dico.Exists(c.Value) And c.Value <> "" Then _
dico.Add c.Value, c.Value
Next
ComboBox1.List = dico.items
End Sub

Ce que j'aimerai c'est que dans la combobox j'ai affiché jan-12, feb-12, .... à la place de 31/01/2012;29/02/2012.... Tout en gardant ci-possible la valeur (je veux juste que le format soit modifié).

En vous remerciant par avance,

Cordialement,

ARE
 

Pièces jointes

  • Are.xlsm
    57.5 KB · Affichages: 39
  • Are.xlsm
    57.5 KB · Affichages: 41
  • Are.xlsm
    57.5 KB · Affichages: 41

Pierrot93

XLDnaute Barbatruc
Re : Format combo box.

Bonjour,

ceci semble fonctionner chez moi :
Code:
Private Sub UserForm_Initialize()
Dim dico, c
Set dico = CreateObject("Scripting.Dictionary")
For Each c In Range("J5:J" & [J65536].End(xlUp).Row)
If Not dico.Exists(c.Text) And c.Value <> "" Then _
dico.Add c.Text, c.Text
Next
ComboBox1.List = dico.items
End Sub

bon après midi
@+
 

are

XLDnaute Nouveau
Re : Format combo box.

Bonjour,

Tout d'abord je te remercie de t'intéresser à mon problème. J'ai essayé ta méthode et la valeur issue de la combo box change (je l'ai liée à une cellule excel A1 dans le fichier pour te montrer). Ce que j'aimerais c'est que la valeur dans la case A1 soit du format (jan-12) mais avec la value finde mois (31/01/2012) (en gros un format similaire à celui de la colonne J).
D'autre part j'ai l'impression que les objets du dico sont faussé quand on prend la foncion text (le 12 du mois à la place du 31 et l'année 2012 devient l'année 2013 en value). PS Si tu as du mal à comprendre teste quelques valeurs sur le fichier et tu comprendras .

Merci d'avance,

Cordialement,
 

Pièces jointes

  • Are.xlsm
    58.8 KB · Affichages: 40
  • Are.xlsm
    58.8 KB · Affichages: 40
  • Are.xlsm
    58.8 KB · Affichages: 47

Pierrot93

XLDnaute Barbatruc
Re : Format combo box.

Re,

essaie peut être comme ceci, avec une colonne masquée dans la combo :
Code:
Option Explicit
Private Sub ComboBox1_Click()
Worksheets("Feuil1").Range("A1").Value = ComboBox1.Value
End Sub
Private Sub UserForm_Initialize()
Dim dico As Object, c As Range, l As Integer, k(), i()
With ComboBox1
    .ColumnCount = 2
    .ColumnWidths = "20;0"
    .BoundColumn = 2
End With
With Sheets("Feuil1")
    Set dico = CreateObject("Scripting.Dictionary")
    For Each c In Range("J5:J" & [J65536].End(xlUp).Row)
    If Not dico.Exists(c.Value) And c.Value <> "" Then _
        dico.Add c.Value, c.Text
    Next
    k = dico.keys
    i = dico.items
    For l = 0 To dico.Count - 1
        ComboBox1.AddItem i(l)
        ComboBox1.List(l, 1) = k(l)
    Next l
End With
End Sub
 

Discussions similaires

Réponses
3
Affichages
502

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko