Lien entre combobox [Résolu]

souk69 12 Messages postés lundi 13 mars 2006Date d'inscription 25 avril 2006 Dernière intervention - 28 mars 2006 à 14:40 - Dernière réponse : Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention
- 29 mars 2006 à 10:14
bonjour,
grand débutant, j'ai un ti pb qui est le suivant
alors j'ai crée 2 combobox
combobox 1 il y a les valeurs X, Y ,Z a selectionner
et dans le combobox 2 les valeurs 1,2,3,4,5,6,7,8,9
alors je souhaite taper le code pour que quand X est selectionner dans le 1er combobox le choix dans le second soit 1,2,3 quand j'ai Y le choix devient 4,5,6 idem pour Z avec 7,8,9

en vous remerciant d'avance
Afficher la suite 

4 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 28 mars 2006 à 15:44
3
Merci
Re;

Dans ce cas essaie ce qui suit (teste en VB6 mais le portage en VBA ne devrait pas posé trop de problème)

Private Sub C1_Click()
Call FillC2(C1.ListIndex)
End Sub


Private Sub Form_Load()
Call C1.AddItem("X", 0)
Call C1.AddItem("Y", 1)
Call C1.AddItem("Z", 2)
C1.ListIndex = 0
End Sub



Private Sub FillC2(Index As Integer)
Call C2.Clear
Call C2.AddItem(3 * Index + 1)
Call C2.AddItem(3 * Index + 2)
Call C2.AddItem(3 * Index + 3)
C2.ListIndex = 0
End Sub

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 28 mars 2006 à 15:16
0
Merci
Salut,

Mais tu veux que dans le Combo 2 il y est toujours les 9 valeurs ou pas?

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
souk69 12 Messages postés lundi 13 mars 2006Date d'inscription 25 avril 2006 Dernière intervention - 28 mars 2006 à 15:24
0
Merci
non uniquement 3 valeurs
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 29 mars 2006 à 10:14
0
Merci
Question : quel langage utilises-tu ?
Je vois jrivet parler de VBA.

En VBA, en ACCESS, tu n'as besoin d'aucun code pour faire cela.
2 tables : Une avec tes lettres (x,y,z) et une de correspondance (numéroauto, qui te donnera bien tes chiffres de 1 à 9, et un champ lettre en liaison avec la table lettre)
Ton formulaire avec 2 comboBox :
Cbo1 : Alimentée par une requête sur la table Lettre qui t'affiche donc x,y,z.
Cbo2 : Alimentée par une requête sur la table Correspondance, avec en paramètre la Cbo1.

Un seul bout de code à rajouter, Cbo1_afterupdate : Cbo2.requery pour forcer la rafraîchissement à chaque clic dans la Cbo1

Avec cette méthode, plus de pbs et l'avantage, c'est que tu peux rajotuer toutes les lettres et les chiffres que tu veux, plus besoin de toucher au code. Il suffit de mettre à jour la table de Correspondances et de Lettres (ce qui te permet même de permettre à un futur utilisateur de le faire lui-même, sans intervention extérieure pour la maintenance du code)



En VBA en Excel, idem, aucun besoin de code compliqué, et maintenance à faire sans modification du code. J'en parle dans un autre post déjà :
La solution, crée des zones de Nom (Menu Insertion\Nom\définir) qui contiennent les chiffres qui t'intéressent.
Par ex. :
A1:A3 appelé X et contient 1,2,3
B1:B3 appelé Y et contient 4,5,6
C1:C3 appelé Z et contient 7,8,9
E1:E3 appelé Lettres et contient X,Y,Z

Dans une cellule E1, tu attaches une liste : Menu Données\Validation\ Autoriser liste, source "=Lettres"
Ta cellule E1 est devenue une ComboBox et contient X,Y,Z.
Idem pour la Cellule G1, sauf que cette fois en source, tu mets "=X"
Ta cellule G1 est devenue une ComboBox et contient 1,2,3.

Plus qu'à créer un bouton Mise à jour, et lui coller le petit bout de code suivant :

Dim Temp As String
Temp = "=" & Range("E1").Value
With Range("G1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Temp
End With

Et voilà, de la même façon que pour ACCESS, tu as là un code abouti, plus besoin de le modifier pour que cela continue à fonctionner quelque soit les lettres et chiffres que tu veux afficher.
(tu retrouves l'explication dans ce post d'il y a 1 ou 2 jours :
http://www.vbfrance.com/infomsg/EXCEL-DIVERS-PROBLEMES-DESELECTION-LISTE-GRAPHIQUE-0_699275.aspx)


Donc, en fonction de tes besoins, à toi de voir. Et sauf si tu veux absolument le faire par code, je te conseillerais, à chaque fois que c'est possible, de limiter l'utilisation du code. Après tout, en VBA, il y a des applis qui tournent, autant utiliser leur fonctionnalité pour gagner du temps ^^ (Bon, si t'es en VB pur par contre, ben, ce que t'a donné jrivet est très bien et désolée :p)

Molenn

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.