Liste déroulante dans combox

  • Initiateur de la discussion Initiateur de la discussion Steffi
  • 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 !

S

Steffi

Guest
Bonjour,

Petit problème, suite au message de hannoun y'a 2 jours, je n'arrive pas à insérer la liste dans la combox de VBA, je n'ai pas la propriété LinkedCell, ni ListFillRange. Quelqu'un peut-il m'aider???
 
Bonjour Steffi

Je te joint un texte explicatif de @+Thierry qui est éclairant sue ce problème. Il ne faut pas hésiter à aller voir dans les archives, il y a des trésors !
si tu ne trouves pas ton bonheur, regarde les démos de @+Thierry (son pack 1 et 2)
A+ syl
Auteur: @+Thierry (---.monaco377.com)
Date: 03-08-03 18:29

Salut DrefZone, le Forum

Arf...... Grace à nous tu utilises une colonne entière pour alimenter une ComboBox .... Non, enfin pas de moi ce coup là et je ne l'ai pas vu passer !! lol (fais voir le code que tu utilises ?)

Voici les trois méthodes connues pour alimenter une ComboBox de manière dynamique...

METHODE ADDITEM :
Description de l'aide :Ajoute un élément à la liste d'une zone de liste ou d'une liste modifiable à colonne unique. Ajoute une ligne à la liste d'une zone de liste ou d'une liste modifiable multicolonnes.

Exemple concret :
Private Sub UserForm_Initialize()
Dim i As Byte, x As Byte
i = Sheets("Database").Range("A65536").End(xlUp).Row
For x = 1 To i
With ComboBox1
.AddItem Sheets("Database").Range("A" & i)
End With
Next x
End Sub


METHODE ROWSOURCE : (attention Combobox de UserForm ONLY)
Description de l'aide : Spécifie la source de données fournissant une liste à un contrôle ComboBox ou ListBox.

Exemple concret :
Private Sub UserForm_Initialize()
Dim Plage As String
With Sheets("Database")
Plage = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Address
End With
ComboBox1.RowSource = "Database!" & Plage
End Sub

NB : la méthode "RowSource" ci-dessus ne supporte pas des nom de feuille (onglet) avec des espaces et certains caractères spéciaux


METHODE LIST :
Description de l'aide : Renvoie ou définit la liste des entrées d'un contrôle ListBox ou ComboBox.

Exemple concret :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim Tab1() As String
With Sheets("Database")
Set Plage = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
ReDim Tab1(1 To Plage.Count)
For Each Cell In Plage
i = i + 1
Tab1(i) = Cell
Next
ComboBox1.List = Tab1
End Sub

Voilà, ces trois méthodes feront le même résultat (à l'oeil nu) dans la l'initialisation du UserForm pour l'incrémentation de données dans ComboBox1

Maintenant pour en revenir à nos moutons, dans ton exemple, alors on peut alimenter une ComboBox d'une maniere fixe (non-dynamique) comme suit :

METHODE ADDITEM :
Private Sub UserForm_Initialize()
Dim i As Byte, x As Byte
For x = 5 To 15
With ComboBox1
.AddItem Sheets("Database").Range("A" & x)
End With
Next x
End Sub


METHODE ROWSOURCE : (Combobox de UserForm Only, sinon voir ListFillRange)
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Database!A5:A15"
End Sub

La Methode List semble un peu superflue pour ceci....

Bonne Fin de Journée
@+Thierry










Bonne Fin de Week End
@+Thierry
 
- 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
10
Affichages
379
Retour