cs_tintin77
Messages postés7Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 8 mars 2006
-
20 août 2005 à 10:40
cs_tintin77
Messages postés7Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 8 mars 2006
-
13 sept. 2005 à 22:00
voilà,
dans une feuille excel, j'ai 42 combobox avec en contenu : type 1, type 2 ....
Lorsque je sélectionne type 2 sur n'importe quelle combobox, cela
selectionne type 2 dans toutes les combobox situé à droite de celle ci.
voici mon code :
End Sub
-------------------------------------------------------
dans chaque combobox je suis obligé de changer en focntion de la combobox en cours :
for i = 2 ou 3 ou 4 ou 5 ... to 42
et
OLEObjects(i).Object.Value = combobox1.Value ou combobox2.Value ou...
je cherche un code optimisé le plus possible. J'aimerais faire appel à
la combobox en cours pour définir le résultat des autres en évitant de
remettre combobox1 ou 2 ou 3 ...
y a t'il un moyen pour reconnaitre la combobx qui lance le code ( Private Sub ComboBox1_Change) ?
cs_tintin77
Messages postés7Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 8 mars 2006 21 août 2005 à 14:28
Merci de ta réponse rapide.
mais ton code marche pour toutes les combobox contenu dans la feuille..
Il est important pour moi que ce soi que les combobox situées à droite de celle que je change qui prenne la nouvelle valeur.
si j'ai type 1 dans la premiere combobox et que je change la deuxieme
combobox en mettant type 4, toutes les comobobx de droite vont se
mettre à type 4. toutes celles d'avant ne changent pas (reste à type 1
pour la première combobox)
pjcleder
Messages postés183Date d'inscriptionjeudi 4 février 2010StatutMembreDernière intervention16 septembre 201111 21 août 2005 à 16:29
PAT
Bien, aprés recherche je me suis rendu compte que les ComboBox collées sur une feuille excel n'ont pas la propriété "TabIndex" contrairement aux ComboBox classiques sous VB. Peut-être ne me vois tu pas venir ?!
En fait , si tes combo sont sur une UserForm dans Excel, tu peux leur assigner un tabindex suivant leur positionnement sur la feuille. On imagine que la combobox1 aura en tabindex 0, la combobox2 1 etc... et dans ton algo, tu pourais rajouter ceci :
Private Sub ComboBox1_Click()
Dim ctl As OLEObject
For Each ctl In OLEObjects
if ctl.TabIndex > Combobox1.Tabindex then
ctl.Object.Value = ComboBox1.Text
End If
Next
End Sub
J'espère que tu me suis. Médite là-dessus et reviens vers moi si tu as un souci.
cs_tintin77
Messages postés7Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 8 mars 2006 28 août 2005 à 15:34
Salut,
bon je m'y remet enfin. je viens de m'apercevoir qu'il n'y a pas de
propriété TabIndex dans les combobox sur une feuille excel. Du coup ça
me génère une erreur!
tu aurais une autre solution ?
peut on faire appel au combobox en cours dans le code (genre un ThisCombobox) ?
Private Sub ComboBox1_Change()
Dim ctl As OLEObject
For Each ctl In OLEObjects
If ctl.TabIndex > ThisCombobox.TabIndex Then
ctl.Object.Value = ThisCombobox.Text
End If
Next
End Sub
tant que j'y suis : quelle est la différence entre combobox_Change et combobox_Click ?
dsl pour toutes ces questions (ma soif d'apprendre n'est pas prête de se tarir)