Date Combobox VBA malgré les nombreux postes

Fermé
Stef9259 Messages postés 4 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 14 juin 2010 - 14 juin 2010 à 12:07
Stef9259 Messages postés 4 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 14 juin 2010 - 14 juin 2010 à 20:54
Bonjour,

Malgré les nombreux postes sur le sujet, je n'ai pas trouvé la réponse à mon problème.

Je souhaite donc faire apparaitre des dates au format "mmm-yy" dans une combobox.
Pour ce faire j'ai le code VBA suivant:

'Janvier
ComboBoxMonat2.AddItem Worksheets("Forecast").Range("B1")
'Fevrier
ComboBoxMonat2.AddItem Worksheets("Forecast").Range("S1")
'Mars
ComboBoxMonat2.AddItem Worksheets("Forecast").Range("AJ1")
'Avril
ComboBoxMonat2.AddItem Worksheets("Forecast").Range("BA1")
.
.
.
.

Les cellules B1, S1, etc...contiennent une date de type 01/01/2010 ou 01/02/2010. Les dates s'affiche donc pour le moment dans ma combobox comme suit: 01/01/2010. Dc jusque là pas de problème.

La ou ca coince, c'est lorsque je souhaite afficher dans ma combobox les dates au format "mmm-yy". Après de longues recherches sur le forum, j'ai trouvé le code VBA suivant:

Private Sub ComboBoxMonat2_Change()
ComboBoxMonat2.Value = Format(ComboBoxMonat2.Text, "mmm-yy")
End Sub

Le probleme, c'est qu'avec ce code la date dans ma combobox s'affiche au format "mmm-yy" qu'après avoir selectionné une date. Avant que je selectionne une date le format reste le même (par exemple 01/01/2010).

Je souhaiterais que le format date soit tjs le même "mmm-yy", pas seulement lorsque je click sur une date, mais lorsque je clique sur la fleche drop down de la combobox.

J'ai donc essayé aussi avec un:

Private Sub ComboBoxMonat2_boforedragover() mais sans succès.

J'espère que j'ai été assez claire.

Je vous remercie d'avance pour votre aide!

Stef9259

N.B: Je suis sur Excel 2007



1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 juin 2010 à 13:06
Bonjour,

Il faut le faire lors de l'initialisation de la combo et non dans l'évènement change().

ComboBoxMonat2.AddItem Format(Worksheets("Forecast").Range("B1") , "mmm-yy")

etc ...

;o)
0
Stef9259 Messages postés 4 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 14 juin 2010
14 juin 2010 à 13:17
Je te remercie Polux, ca fonctionne super. J'avais déjà vu ton poste dans un autre topic, mais je n'avais pas compris la demarche à suivre pour le faire lors de l'initialisation de la combo.

Merci encore pour ton aide!

Stef
0
Stef9259 Messages postés 4 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 14 juin 2010
14 juin 2010 à 18:35
Rebonjour Polux,

Mon Probleme est finalement pas completement résolu. L'affichage de la combobox fonctionne bien comme prévu. Le probleme maintenant est lorsque je fais un:

FIchiersortie.Worksheets(2).Range("A1:C10).find(ComboBoxMonat2.Value, LookIn:=xlValues, LookAt:=xlPart, _ SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)

un message d'erreur apparait:

"Variable non-définie" (Erreur 91)

J'ai fait un MsgBox avant le find pour vérifier ce qu'il renvoyait. Et il renvoi "Feb. 2010" (si j'ai selectionné Feb. 2010 ds la combobox. Dc normal!

J'en deduit que le format de date n'est pas géré par la fonction Find.

Aurais tu une idée (sans changer le format de la date dans la combobox)?

Encore Merci

Stef9259
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 juin 2010 à 19:08
Peux tu me dire ce qu'est "Fichiersortie" ? Est-ce un objet que tu as défini ?
0
Stef9259 Messages postés 4 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 14 juin 2010
14 juin 2010 à 20:54
Fichiersortie est un fichier excel que je vais chercher avec un "application.getopenfile". Le code exact le voici:

Nomfichiersortie = Application.GetOpenFilename("Excel File, *.xsl;*.xlsx;*.xls")

If Nomfichiersortie <> False Then
Set Fichiersortie = Workbooks.Open(Nomfichiersortie)


J'ai 2 fichiersentrée dans lesquelles je vais chercher des données et un fichiersortie dans lequel je rassemble les données des fichiersentrées. Les comboboxs permettent à l'utilisateur de rassembler les données sur un critère ou plusieurs critères.

Cette Combobox Date est la dernière de mes Comboboxs et la seule qui ne fonctionne pas encoroe.
0