ComboBox: Valeur à afficher à partir d'une plage défini par nom

Résolu
xaveria -  
 xaveria -
Bonjour,

J'ai un formulaire qui se trouve dans une feuille de mon classeur Excel (feuil1), et toutes les listes de choix que je veux avoir sont dans une autre feuille (feuil3). Toutes ces listes ont des noms définis dans mon classeur.

Dans mon formulaire, je veux avoir une liste déroulante de choix, donc j'ai utilisé le ComboBox, mais je n'arrive pas à faire afficher les valeurs voulues lorsque je clique sur la flèche de la liste dans le formulaire. Je ne suis pas certaine de l'évènement à choisir pour y arriver. La liste reste vide.

Voici ce qui se trouve présentement dans le code:
Private Sub cbxSecteur_change()

Dim ChoixSecteurs As String
ChoixSecteurs = Feuil3.Range("Secteurs").Value

CbxSecteur.Rowsource = ChoixSecteurs

End Sub


1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

J'ai un formulaire qui se trouve dans une feuille de mon classeur Excel (feuil1) Userform ou controls sur feuille de calcul ???????
0
xaveria
 
J'ai un bouton de commande sur la feuil1 du Classeur Excel, qui ouvre un Useform (FormulaireBox) dans lequel je voudrais que les ComboBox aient des listes déroulantes qui elles se trouvent dans ma feuil3 d'excel (ex nom de la plage = Secteurs)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

'VBA Userform

Private Sub UserForm_Activate()
Dim pt As Integer, nb As Integer

'raz liste
ComboBox1.Clear
'nombre de valeurs dans la liste
nb = Worksheets("feuil3").Range("Secteurs").Cells.Count
'boucle d'ecriture valeur dans combobox
For pt = 1 To nb
ComboBox1.AddItem (Worksheets("feuil3").Range("Secteurs").Cells(pt, 1))
Next pt
End Sub

'ou

Private Sub UserForm_Activate()
ComboBox1.Clear
'remplissage par adresse de la plage
ComboBox1.RowSource = Worksheets("feuil3").Range("A1:A5").Address
End Sub

'ou

'Directement dans la propriete RowSource de la Combobox1: Secteurs

A+
0
xaveria
 
Ça ne fonctionne pas, j'ai ajusté le nom de la combobox pour le nom de ma combobox, et le A1:A5 pour le nom de ma plage, et ça ne fonctionne pas, j'ai un message d'erreur qui apparaît à l'écran, l'indice n'appartient pas à la sélection : Il ne semble pas trouvé ma plage dans ma feuille excel qui se nomme "Secteurs"

Private Sub UserForm_Activate()
CbxSecteur.Clear
'remplissage par adresse de la plage
CbxSecteur.RowSource = Worksheets("feuil3").Range("Secteurs").Address

End Sub
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

CbxSecteur.RowSource = Worksheets("feuil3").Range("Secteurs").Address

Ne marche pas, c'est pour cela que je ne l'avais pas mis,mais en passant par une variable intermediare c'est ok, comme quoi !!!

Private Sub UserForm_Click()
x = Worksheets("feuil1").Range("liste").Address
ComboBox1.RowSource = x
End Sub

A+
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ai oublie le nom de la feuille:
ex:
Private Sub UserForm_Activate()
x = "feuil3!" & Worksheets("feuil3").Range("liste2").Address
ComboBox1.RowSource = x
End Sub
0