Row source de combobox

  • Initiateur de la discussion Initiateur de la discussion Delirium
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Delirium

XLDnaute Occasionnel
Bonjours.

Je réalise une application excel et j'ai un problème avec un Combobox situé dans un Userform.

Mon classeur comporte 2 feuilles.

Sur la 'Feuil1' j'ai un bouton qui lance mon Userform.
Sur la 'Feuil2' en B1 j'ai le listindex de mon combobox
et en B2 à B98 le Rowsource.

J'ai don écrit ce code :
Code:
Private Sub UserForm_Initialize()
With ComboBoxDepartement
.RowSource = Sheets('feuil2').Range('B2:B98')
.ListIndex = Sheets('feuil2').Range('B1').Value
End With
End Sub

Private Sub ComboBoxDepartement_Change()
Sheets('feuil2').Range('B1').Value = ComboBoxDéperditionParois.ListIndex
End Sub

Mais apparament il y a un problème avec la ligne :
.RowSource = Sheets('feuil2').Range('B2:B98')

Si quelqu'un a la solution, merci d'avance.
 
salut Delirium,

je vais peut etre faire une remarque complement idiote mais lorsque tu met With ComboBoxDepartement, la partie ComboBoxDepartement designe bien le nom de ta combo!!!
si c'est la cas, je ne vois pas trop ou ce situe le probleme.

@+
 
Bonjour Delirium, Porcinet, le Forum

Oui on peut le faire en Mode Design par la Fenêtre propriété sur RowSource.

Mais dans ce Cas on perd toute notion de plage variable dynamique. Par conséquent il est souhaitable de le faire faire par VBA En Mode Run Time.

En fait c'est ta Syntax qui ne va pas... RowSource est un peu un hybride (d'ailleurs il ne passe pas sous Mac)...

Il faut écrire ainsi :

ComboBox1.RowSource = 'Feuil2!B2:B98'

Et en plage dynamique :

Option Explicit

Private Sub UserForm_Initialize()
Dim WS As Worksheet
Dim L As Integer

Set WS = Worksheets('Feuil2')

    L = WS.Range('B35000').End(xlUp).Row

   
With Me.ComboBoxDepartement
        .RowSource = WS.Name & '!B2:B' & L
        .ListIndex = WS.Range('B1').Value
   
End With

End Sub


Bonne Fin de Journée
[ol]@+Thierry[/ol]
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
172
Réponses
4
Affichages
229
Réponses
9
Affichages
385
Réponses
10
Affichages
660
Réponses
3
Affichages
332
Réponses
5
Affichages
416
Réponses
43
Affichages
769
Retour