rowsource combobox

mmaatthh

XLDnaute Nouveau
Bonjour le forum
Je travail sur excel 2003 pour Mac. Je tente de créer un combobox mais dans les propriétés du combobox on ne m'offre pas /Données /RowSource. Si je marque le code textuellement je n'ai toujours pas de choix dans le combobox. Je dois surement fair qqc de travers! Dans la pièce jointe exemple je voudrai que la plage D1:D12 soie les données de mon combobox


Si vous avez des pistes de solution je vous en remerci
MMaatthh
 

Pièces jointes

  • COMBOBOX.xls
    37.5 KB · Affichages: 174
  • COMBOBOX.xls
    37.5 KB · Affichages: 184
  • COMBOBOX.xls
    37.5 KB · Affichages: 188

JeanMarie

XLDnaute Barbatruc
Re : rowsource combobox

Bonjour

Bienvenue dans le mode de la programmation en VBA sur mac, qui présente certaines particularités.

Code:
Private Sub ComboBox1_Change()
   '....
   '....
End Sub

Private Sub UserForm_Initialize()
Dim I As Byte
[COLOR="Green"]'Utilisation d'une boucle for pour définir les item de la combobox
'l'utilisation de la propriété RowSource n'est pas compatible sur Mac[/COLOR]
For I = 1 To 2
   ComboBox1.AddItem [Feuil1].Cells(I, 4)
Next I

[COLOR="green"]'Attention à la gestion des événements .change sur mac
'La ligne ci-dessous va lancer l'événement ComboBox1_Change, la procèdure d'initialisation de l'userform
'sera interrompu, et éxécutera le code de l'événement[/COLOR]

ComboBox1.ListIndex = 0

End Sub

Solution proposé pour la gestion des événements dans l'initialisation de l'userform

Code:
Private Sub ComboBox1_Change()
   '....
   '....
End Sub

Private Sub UserForm_Initialize()
Dim I As Byte
[COLOR="green"]'Utilisation d'une boucle for pour définir les item de la combobox
'l'utilisation de la propriété RowSource n'est pas compatible sur Mac[/COLOR]
For I = 1 To 2
   ComboBox1.AddItem [Feuil1].Cells(I, 4)
Next I

[COLOR="green"]'Attention à la gestion des événements .change sur mac
'La ligne ci-dessous va lancer l'événement ComboBox1_Change, la procèdure d'initialisation de l'userform
'sera interrompu, et éxécutera le code de l'événement[/COLOR]
[COLOR="Red"]Application.EnableEvents = False[/COLOR]
ComboBox1.ListIndex = 0
'....

[COLOR="Green"]'Ligne à mettre en dernier[/COLOR]
[COLOR="red"]Application.EnableEvents = True[/COLOR]
End Sub
 

mmaatthh

XLDnaute Nouveau
Re : rowsource combobox

Merci JeanMarie

Le tout fonctionne très bien j'imagine que cela doit être la même chose pour les listbox? Je vais faire des tests. Avant de recevoir ta réponce j'ai trouver une autre façon d'arriver au résultat. Il me reste à déterminer s'il y a un avantage à utiliser un code plus que l'autre?

Private Sub UserForm_Initialize()
UserForm1.ComboBox1.List = Worksheets("feuil1").Range("D4:D12").Value
End Sub

De plus si je comprend bien pour gérer les polices... du combobox on doit les modifier via les propriétés de la plage source et non via ceux du combobox?

J'aime mon mac mais il y a des fois où il faut tricotter!

Merci Mmaatthh
 

JeanMarie

XLDnaute Barbatruc
Re : rowsource combobox

Bonjour

Je ne comprends ta question :
De plus si je comprend bien pour gérer les polices... du combobox on doit les modifier via les propriétés de la plage source et non via ceux du combobox?

@+Jean-Marie
 

mmaatthh

XLDnaute Nouveau
Re : rowsource combobox

Bonjour JeanMarie
Oui, je pensais que pour changer les polices du combobox on devait le faire en changeant la police du la plage qui sert de list au combobox. Je faisais erreur, vérification faite dans les propriétées du combobox on peut changer les polices comme sur PC.
Merci Mmaatthh
 

Discussions similaires

Réponses
3
Affichages
440

Statistiques des forums

Discussions
312 576
Messages
2 089 836
Membres
104 287
dernier inscrit
kahinaaittouares@hotmail.