RowSource variable... ou comment m'éviter une dépendance au Prozac...

Kalim

XLDnaute Nouveau
Salutations à toutes et tous!

Cela fait quelques jours que je fais des recherches sur le net pour trouver une solution à mon problème mais il semble que de vils démons se dressent constamment sur ma route virtuelle... En espérant ne pas trop vous déranger, je jette mon dévolu sur ce forum bien sympathique où j'ai par ailleurs pas mal appris de choses. Mais malheureusement pas la solution que je cherche... :(

J'essaie de mettre au point, dans un classeur Excel, un formulaire (userform et non un formulaire intégré à une feuille de calcul) apparaissant lors d'un clic sur une image. Dans le formulaire se trouvent entre autres 4 combobox devant chacun permettre de faire une localisation géographique. En d'autres termes, il s'agit d'une sélection en cascade du plus grand territoire vers le plus petit, considérant bien évidemment que la combobox subséquente tient compte de ce que contient la précédente.

Là où je connais des difficultés, c'est que j'essaie de jouer sur la propriété RowSource des combobox pour que la liste affichée par la combobox2 soit adaptée à la sélection faite dans la combobox1 et ainsi de suite. Cela me semblait logique et quand j'essaie sur Excel2007 tout fonctionne, tandis que sur Excel2003 ça plante à partir de la 3e combobox. Or malheureusement c'est sur la 2003 que ça doit fonctionner :(

Avez-vous une idée? Ou y aurait-il une autre solution pour obtenir le même résultat sans jouer sur la propriété RowSource?

D'avance merci!
 

Spitnolan08

XLDnaute Barbatruc
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

Bonjour,

Pas bien tout compris... car tel quel, il existe beaucoup de fils qui peuvent répondre à tes questions... à commencer par l'un d'eux figurant dans les liens de ma signature... Etant entendu que la propriété RowSource est à bannir des codes VBA.

Par ailleurs, puisque tu fréquentes depuis quelques temps déjà ce forum, tu dois savoir qu'un fichier avec ce que tu as déjà réalisé est très utile pour illustrer un long discours...

Dans l'attente..

Cordialement
 

Kalim

XLDnaute Nouveau
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

Merci pour ton intervention!

Autant pour moi tu as raison, sans exemple concret ce n'est guère facile...

Voici le canevas de ce sur quoi je bute actuellement.

Tu as probablement raison. Il y a certainement une manière plus simple de procéder mais je l'ignore... :(

Je cherche encore dans les fils, je cherche... Mais toute aide sera la bienvenue! ;)

Merci pour ton intérêt!
 

Pièces jointes

  • exemple.zip
    14.2 KB · Affichages: 118
  • exemple.zip
    14.2 KB · Affichages: 112
  • exemple.zip
    14.2 KB · Affichages: 118

Spitnolan08

XLDnaute Barbatruc
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

Re,
Au risque de me répéter : J'en vois déjà qui vont dire que je radote...:cool:

Tu as la réponse à ta question ici avec le dernier exemple de la méthode List... qui est le plus simple à mettre en oeuvre et se rapproche de ce que tu fais.

Cordialement
 

Kalim

XLDnaute Nouveau
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

De fait... :eek:

Il semble bien que je trouve solution dans le fil que tu m'as transmis. Il me semblait pourtant y être passé mais j'ai dû zapper les éléments essentiels.

Je vais essayer demain. Merci beaucoup!

Et désolé d'avoir encombré le forum avec ce qui s'avère probablement être un fil... totalement inutile! Si ce n'est pour constater avec plaisir la disponibilité des afficionados de ce forum! :)
 

Kalim

XLDnaute Nouveau
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

C'est très intéressant comme solution! Ca fonctionne. Je te remercie!

Il me reste encore un tout petit problème... Les références de la liste pointant vers une seule cellule ne fonctionnent pas. Comment puis-je procéder?

Voici un exemple du code employé:

Private Sub Box1_Click()
Select Case SetupForm.Box1.Value
Case Is = Worksheets("Txt_List").Range("A2").Value
SetupForm.Box2.List = Worksheets("Txt_List").Range("A5:A8").Value
Case Is = Worksheets("Txt_List").Range("A3").Value
SetupForm.Box2.List = Worksheets("Txt_List").Range("A9").Value

Case Is = Worksheets("Txt_List").Range("A4").Value
SetupForm.Box2.List = Worksheets("Txt_List").Range("A10:A14").Value
End Select
End Sub

La procédure bug sur la ligne en gras alors qu'elle fonctionne correctement pour les autres sélection.
Après ce problème résolu, je ne devrais plus t'ennuyer ;)

Merci d'avance!
 

Spitnolan08

XLDnaute Barbatruc
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

Re,
J'ai regardé en vitesse et changé ça :
Code:
SetupForm.Box2.List = Worksheets("Txt_List").Range("A9:A13").Value
et ça fonctionne...pour cette sélection. Pour les autres cas : pas testé...

Cordialement
 

Kalim

XLDnaute Nouveau
Re : RowSource variable... ou comment m'éviter une dépendance au Prozac...

Mais avec ta modification il va proposer 5 choix alors qu'il ne devrait proposer seulement ce que contient A9.

En gros je cherche à savoir comment faire apparaître un seul élément dans une liste. J'ai essayé de remplacer Range("A9") par Cells(9, 1) mais ça ne fonctionne pas non plus.

J'ai essayé aussi de jouer directement sur .Value pour qu'il affiche automatiquement l'unique choix, mais si l'utilisateur cliquait sur le menu déroulant de la combobox cela ne correspondait pas.

Désolé, c'est certainement une chose simple sur laquelle je bloque mais voilà... quand on ne sait pas, on ne sait pas... :(

Merci pour ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 848
Messages
2 092 788
Membres
105 534
dernier inscrit
EmilieG60