Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA Userform Remplir une combobox

alexane

XLDnaute Occasionnel
Bonjour à tous,
D'après ce que je sais, il est possible de remplir une combobox en utilisant des valeurs saisies dans une feuille en utilisant soit RowSource soit AddItem. Laquelle des 2 méthodes est la plus efficace ? Y a t il d'autres méthodes ?
En fait je cherche à comprendre dans quelles circonstances il faut privilégier l'une ou l'autre des méthodes ?
Merci
 

Staple1600

XLDnaute Barbatruc
Re

Et si il faut remplir avec les données d'une feuille.
VB:
Private Sub UserForm_Initialize()
With Sheets(1)
ComboBox1.List = Range(.[A2], .Cells(Rows.Count, 1).End(xlUp)).Value
End With
End Sub
 

alexane

XLDnaute Occasionnel
Ok.
Si je comprends bien, List a pour avantage d'éviter de remplir en utilisant une boucle
VB:
For j = 1 To lim
    ComboBox1.AddItem .Cells(j, 1).Value
Next j
Je vais regarder ça de plus près, c'est moins lourdeau ! Encore merci
 

Staple1600

XLDnaute Barbatruc
Re

Exact. Avec List pas de boucle
Et on peut aussi varier les plaisirs
VB:
Private Sub UserForm_Initialize()
With Sheets(1).Cells(1).Resize(, 13)
    .Formula = "=COLUMN()"
    ComboBox1.List = Application.Transpose(.Value2)
End With
End Sub
 

alexane

XLDnaute Occasionnel
Ah , je comprenais pas pourquoi tu me passais ce bout de code mais oui, le transpose pour récupérer les données à l'horizontal, ça peut tjs être utile ! Et puis j'avais jamais utilisé un value2
Merci beaucoup pour toutes ces infos
 

Staple1600

XLDnaute Barbatruc
Re

Cells(1) c'est A1
Et toujours pour varier les plaisirs
VB:
Sub k()
Dim a$, b$, c$, d$, e$, f$
a = [A1].Address
b = Cells(1).Address
c = Cells(1, 1).Address
d = Cells(1, "A").Address
e = ActiveSheet.UsedRange.Item(1).Address
f = Range("A1").Address
MsgBox a & vbCr & b & vbCr & c & vbCr & d & vbCr & e & vbCr & f, vbExclamation, "Aie,Caramba!"
End Sub
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
365
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…