remplissage combobox pour les nuls

Pitoo

XLDnaute Nouveau
bonjour, et desole pour tout a l'heure

j'ai un code que je n'arrive pas a faire marcher :

Private Sub ComboBox1_Change()
End Sub

Private Sub Sheet1_Activate()
Dim Sheet1 As Worksheet
Set Sheet1 = activeworksheet


Dim mois As Range

Set mois = Array('Janvier', 'Fevrier', 'Mars', 'Avril', _
'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Decembre')

ComboBox1.AddItem mois(i)
Dim i As Integer
For i = 1 To 12
ComboBox1.AddItem = mois(i)
Next

End Sub

POURQUOI ? :(
 

Hervé

XLDnaute Barbatruc
Bonjour

:)

Dim mois As Variant

mois = Array('Janvier', 'Fevrier', 'Mars', 'Avril', _
'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Decembre')


Dim i As Integer
For i = 1 To 12
ComboBox1.AddItem mois(i - 1)
Next

un tableau array et de type variant (et non range), tu n'a pas besoin d'associé ce tableau par set.

ce type de tableau est indéxer à partir de 0 (1er élément =0 , 2 ème élément = 1,etc....), d'ou l'utilité du i-1.

Sinon pour renvoyer la liste des mois dans une combobox, tu peux utiliser monthname :

Dim i As Byte

For i = 1 To 12
ComboBox1.AddItem MonthName(i)
Next i

salut
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

essaies plutot ce code

Private Sub Worksheet_Activate()

Dim i As Byte
Dim mois()

mois = Array('Janvier', 'Fevrier', 'Mars', 'Avril', _
'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Decembre')

Me.ComboBox1.Clear

For i = 0 To 11
Me.ComboBox1.AddItem mois(i)
Next

End Sub

Mais cela me gène un peu car à chaque fois que tu actives ta feuille ton code est recréé

Bon cela ne prend pas trop de ressources mais n'est pas vraiment utile. Un remplissage à l'ouverture suffit amplement

Bonne journée
 

PascalXLD

XLDnaute Barbatruc
Modérateur
OUps Hervé

Bon tu es arrivé juste la minute d'avant donc je ne t'ai pas vu

Mais nous sommes dans la même logique

Pour Pierre n'oublies pas le clear que j'ai rajouté si tu restes sur l'active sheet sinon à chaque activation de ta feuille tu rajoutes une liste au bout de la liste existante donc au bout d'un moment tu as un paquet de mois
 

Pitoo

XLDnaute Nouveau
ah mince effectivement je n'avais pas anticipe le mouvement perpetuel...
en tout cas merci deja pour ca, c'est vraiment gentil !

mais si je veux avoir dans mes choix un truc genre :
avril 05
mai 05
juin 05
etc

je dois lier ma combobox avec une table existante non ?
 

ChTi160

XLDnaute Barbatruc
salut pdeburaux
bonjour le fil
tu peux peut être ajouter cela
For i = 0 To 11
Me.ComboBox1.AddItem mois(i)&Format(Date'yy')
Next

ou simplement modifier l'Array('Janvier 05',etc )

Message édité par: ChTi160, à: 16/06/2005 12:12
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 067
Membres
103 451
dernier inscrit
Souleymane