Row source pour un 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 !

D

delirium

Guest
Bonjour à tous les XLien.

J'ai un nouveau problème sur un combobox dans un userform.

Je voudrais que le rowsource soit les données des cellule de ma feuille XL mais la liste peut se ralonger. Je voudrais donc que le rowsouce de mon combobox se mette à jours automatiquement.
J'ai fait ce code mais y'a un erreur.

Code:
Option Explicit
Dim derlign As Integer
Dim plagelist As String
Dim varselect As Integer

Private Sub UserForm_Initialize()
derlign = Sheets('feuil1').Range('a1').End(xlUp).Row
plagelist = Sheets('feuil1').Range('a1:a' & derlign).Address
With ComboBox1
.RowSource = 'feuil1!' & plagelist
.ListIndex = Range('b2').Value - 1
End With
End Sub

Private Sub ComboBox1_Change()
varselect = UserForm1.ComboBox1.ListIndex
Sheets('feuil1').Range('b2').Value = ComboBox1.ListIndex + 1
End Sub

Vous trouverais mon fichier en pièce jointe pour mieux comprendre.

Je voudrais savoir également si il est possible de mettre en rowsource des cellules d'un autre classeur, et si oui comment faire ?

Merci et @+ [file name=RowSouce.zip size=11972]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RowSouce.zip[/file]
 

Pièces jointes

Bonjour le forum
Bonjour Délirium, bonjour Thomas

Voici les 4 méthodes préconisées par notre ami Thierry (que je salue au passage) à ...disons... ses débuts (il a tjrs été très pédagogique)

Je vous donne 4 méthodes pour remplir cette ComboBox (en fonction de votre besoin)
La propriété (name) du contrôle ComboBox est cboComboBox
Méthode 1 : Les données sont dans une feuille de calcul (Feuil1).
Private Sub UserForm_Initialize()
Me.cboComboBox.RowSource = 'Feuil1!A1:A' & Sheets('Feuil1').Cells(1, 1).End(xlDown).Row
End Sub

Méthode 2 : Les données sont figées et vous les ajoutez grâce à la méthode AddItem.
Private Sub UserForm_Initialize()
With Me.cboComboBox
cboComboBox.AddItem 'Domaine Alexis Rouge'
cboComboBox.AddItem 'Domaine du Grand Crès Blanc'
cboComboBox.AddItem 'Domaine du Grand Crès Muscat'
cboComboBox.AddItem 'Domaine du Grand Crès Rosé'
cboComboBox.AddItem 'Domaine du Grand Crès Rouge'
End With
End Sub
Méthode 3 : Les données correspondent à la liste des mois (Janvier, Février, ..., Décembre).
On va utiliser la méthode AddItem avec une variable (i).
Private Sub UserForm_Initialize()
Dim Mois(1 To 12) As String
Dim i As Integer
' Création d'un tableau des noms de mois
For i = 1 To 12
Mois(i) = Format(DateSerial(1, i, 1), 'mmmm')
Me.cboComboBox.AddItem Mois(i)
Next i
End Sub

Méthode 4 : Les données sont figées et vous les ajouter grâce _
à la fonction VBA.Array(arglist).
Private Sub UserForm_Initialize()
Dim vaDepartment As Variant
Dim stDeptList() As String
Dim i As Integer
vaDepartement = VBA.Array('Ain', 'Aisne', 'Allier','Alpes-de-Hte-Provence', _
'Alpes-Hautes', 'Alpes-Maritimes', 'Ardennes')
ReDim stDeptList (0 To UBound(vaDepartement))
For i = 0 To UBound(vaDepartement)
stDeptList(i) = vaDepartement(i)
Next i
cboCombobox.List = stDeptList
End Sub

En espérant t'avoir été utile 😉
N.B : la 1ère méthode est une variante de la méthode que tu as mis en ligne et c'est celle qui apparemment t'intéresse (RowSource). J'ai laissé les autres afin que tu te fasses une idées des autres possibilités (Ex Additem lorsque tu n'as pas beaucoup de valeurs à gérer....) 😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
226
Réponses
10
Affichages
416
Réponses
9
Affichages
230
Réponses
7
Affichages
226
Réponses
5
Affichages
260
Réponses
5
Affichages
529
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
799
Réponses
4
Affichages
395
Réponses
3
Affichages
766
Réponses
1
Affichages
221
Retour