Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Questions les plus fréquentes (FAQ) et didacticiels > [VBA]Alimentation d'une combobox ou d'une listbox
Vous inscrire
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus


Réponse
 
LinkBack Outils de la discussion
Vieux 04/09/2007, 22h37   #1 (permalink)
FAQ XLD
XLDnaute Nouveau
 
Date d'inscription: septembre 2007
Messages: 16
Par défaut [VBA]Alimentation d'une combobox ou d'une listbox

Pour alimenter une combobox ou une listbox dans un userform, il existe différentes méthodes

Tous les codes mentionnés ici doivent se situer dans le code de l'userform concerné


1 - 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 :
Code:
Private Sub UserForm_Initialize()
'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
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
2 -METHODE ROWSOURCE : (attention Combobox de UserForm SEULEMENT) (Attention ne fonctionne pas sous MAC)
Description de l'aide : Spécifie la source de données fournissant une liste à un contrôle ComboBox ou ListBox.

Exemple concret :
Code:
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 noms de feuille (onglet) avec des espaces et certains caractères spéciaux.
La méthode RowSource, est donnée à titre indicatif. Bien qu'elle soit disponible pour les comboBox et ListBox dans le cadre d'UserForm, elle peut générer des bug dans le déroulement des programmes. En particulier lorsqu'on rend dynamique les plages de cellules concernées par la liste.


3 - METHODE LIST :

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

Exemple concret :
Code:
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
Code:
Private Sub UserForm_Initialize()
Dim Plage As Range

With Sheets("Database")
    Set Plage = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

ComboBox1.List = Plage.Value
End Sub
Code:
Private Sub UserForm_Initialize()
Dim Tab1() As Variant

With Sheets("Database")
    Tab1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
End With

ComboBox1.List = Tab1

End Sub
Code:
Private Sub UserForm_Initialize()

With Sheets("Database")
    ComboBox1.List = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
End With

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.

Les méthodes et exemples donnés fonctionnent également pour les listbox.

__________________________________________________ ________________

Tous ces exemples et ces explications proviennent de _Thierry et de Spitnolan08

Dernière modification par PascalXLD 25/10/2007 à 11h36.
FAQ XLD est déconnecté   Réponse avec citation
ANNONCES
Réponse



Outils de la discussion

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Alimentation d'une BDD par Userform firlili Forum Excel 7 14/05/2007 14h24
Alimentation userform à partir d'une ligne paddle Forum Excel 1 29/11/2006 17h05
Creation d'une listbox en fonction d'une boucle christ-94 Forum Excel 2 04/07/2006 16h06
Alimentation de ComboBox Eliot Forum Excel Downloads - Archives 2 17/06/2004 23h30


Fuseau horaire GMT +2. Il est actuellement 04h50.


(C) 2006 Excel Downloads