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

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

  • Classeur1.xlsm
    20.7 KB · Affichages: 180
  • Classeur1.xlsm
    20.7 KB · Affichages: 179
  • Classeur1.xlsm
    20.7 KB · Affichages: 187

jerico

XLDnaute Nouveau
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

jerico

XLDnaute Nouveau
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

PascalXLD

XLDnaute Barbatruc
Modérateur
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.
 

jerico

XLDnaute Nouveau
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

  • Classeur1.xlsm
    24.1 KB · Affichages: 183
  • Classeur1.xlsm
    24.1 KB · Affichages: 183
  • Classeur1.xlsm
    24.1 KB · Affichages: 199

PascalXLD

XLDnaute Barbatruc
Modérateur
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
 

jerico

XLDnaute Nouveau
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

  • Classeur1.xlsm
    26.2 KB · Affichages: 158
  • Classeur1.xlsm
    26.2 KB · Affichages: 179
  • Classeur1.xlsm
    26.2 KB · Affichages: 182

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87