Alimentation d'une combobox de Userform avec une plage nommée

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

jerico

XLDnaute Nouveau
Bonjour tout le monde,

Débutant sur Excel, je fais une fois de plus appel à votre aide.
Je cherche à insérer une plage définie sur une page dans une combobox d'un Userform...
J'ai joint un exemple.

Feuille 1, se trouve ma liste ainsi que ma plage nommé "maplage"
Feuille 2, nom bouton pour faire apparaitre mon UserForm

le code pour le combobox essayé et le suivant:
Private Sub UserForm1_Initialize()
Dim Tab1() As Variant

With Sheets("Feuil1")
Tab1 = .Range("maplage").Value
End With

ComboBox1.List = Tab1

End Sub

Mais le liste reste vide...

Merci pour votre aide.
Bonne journée
 

Pièces jointes

Re : Alimentation d'une combobox de Userform avec une plage nommée

Bonjour Pierrot et Pascal
@Pierrot: j'ai essayé mais ça marche pas.
@Pascal: Je lis tout ça et j'essaie de trouver une solution.
Merci pour vos réponses. 🙂
Question idiote mais c'est quoi la différence entre combobox et listbox??
Bonne journée
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Bonjour le fil, bonjour le forum,

Jerico, as-tu vérifié si la propriété RowSource de ta ComboBox était bien vierge... ? Est-ce bien la combobox ComboBox1 ? Car la proposition de Pierrot devrait marcher normalement...
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Re,

j'ai trouvé une solution:

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

Merci beaucoup
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Bonjour le fil, bonjour le forum,

La propriété RowSource n'est pas toujours facile à gérer dans certains cas de mise à jour de la ComboBox aussi je te conseille plutôt :
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
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Re

Bonjour le fil, bonjour le forum,

La propriété RowSource n'est pas toujours facile à gérer dans certains cas de mise à jour de la ComboBox

Tout à fait d'ailleurs dans le premier lien que je donnais tout à l'heure il était bien précisé

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.
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Re,
Bonjour Robert

Merci pour vos réponses.
Je l'avais lu mais j'y avais pas porté beaucoup d'importance mais je préfère écouter l'expérience donc j'ai changé mon code pour celui de Robert.
J'ai résolu mon premier problème, je cherche maintenant afficher le tableau correspondant au choix de ma comboBox.
Pour chaque choix le mot est associé à une plage mais j'arrive pas à l'insérer??

J'insère de un nouveau un fichier exemple pour me faire comprendre 🙂
Merci encore pour votre aide.
 

Pièces jointes

Re : Alimentation d'une combobox de Userform avec une plage nommée

Re

Je pense que la première chose à faire est de bien ranger tes données
Faire une feuille pour la liste de base de tes articles (un numéro unique et le libellé)
Faire une feuille avec tes articles (un numéro unique, un libellé et le numéro unique de sa liste)

Sinon là tu vas te perdre

Pour moi la première chose à faire est de bien organiser ses données
 
Re : Alimentation d'une combobox de Userform avec une plage nommée

Re,

Merci pour la réponse.
Au début je pensais utiliser ce principe:

Dim y%
For y = ComboBox1.Value To 1 Step -1
Sheets("y").Select
Range("y").Select
Selection.Copy
Sheets("Fueil2").Activate
Range(y).Select
Selection.Insert shift:=xlDown
Next

Mais je crois que pour VBA la variable est obligatoirement un nombre et ne peut être un mot.
Donc je vais écouter ton conseil et utiliser des nombres mais je suis un peu dépassé. Peu être un peu ambitieux...
J'ai essayé de ranger mieux mon classeur.
 

Pièces jointes

Re : Alimentation d'une combobox de Userform avec une plage nommée

Bonjour le fil, bonjour le forum,

Je n'ai qu'excel 2003 et un convertisseur qui m'ouvre les fichiers 2007/2010 mais c'est le bordel... Je veux bien jeter un œil sur un fichier compatible .xls
 
- 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
9
Affichages
201
Réponses
40
Affichages
1 K
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
286
Retour