Relation entre 2 ComboBox

elliotr

XLDnaute Junior
Bonjour à tous,

Je vous joins 2 fichiers pour résoudre le problème:
-Fichier test sur lequel il faudrait appliquer le code
-"JeVeuxCa" qui correspond à la relation recherchée entre les 2 ComboBox


Si vous ouvrez le fichier "JeVeuxCa" vous verrez qu'en activant le USERFORM et en sélectionnnant un critère dans la première combobox, les critères de la COMBOBOX2 apparaissent (seulement ceux qui sont liés au critère de la combobox 1)


C'est donc l'objet de ma recherche: Une sorte de tri entre 2 Combobox qui seront dans mon fichier original Codes et Sociétés.

En effet, l'affichage par tri "Code" est déjà codé il n'y a pas besoin d'y toucher.
Mais j'ai rajouté une deuxieme combobox qui permet une recherche par Sociétés: il faudrait donc qu'en choisissant une société , apparaissent tous les codes liés à la société.

Les données sont situées dans l'onglet "Base de données":
-Code = colonne A
-Sociétés= colonne AN




Merci beaucoup à ceux qui m'aideront !
Bonne journée !
 

Pièces jointes

  • JeVeuxCa .xls
    252 KB · Affichages: 95
  • fichier_test(1).xls
    62.5 KB · Affichages: 74
  • fichier_test(1).xls
    62.5 KB · Affichages: 98
  • fichier_test(1).xls
    62.5 KB · Affichages: 93
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Relation entre 2 ComboBox

Bonjour le Fil,
Et à tous aussi.
J'ai modifié à ma façon cela est bien plus simple pour toi surtout avec que 2 combobox
J'ai mis des lettres avec chiffres dans les noms de sociétés (+ facile pour gérer)
Si toutefois c'était des chiffres il faudrait modifier en macro.
Bruno
Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim MonDico As Object
Dim c
With Feuil1 '''''''''''''''''''''''''''''''''''''''''REVOIR LE CODENAME de l'onglet
Set MonDico = CreateObject("Scripting.Dictionary")
   For Each c In .Range(.[AN2], .Cells(Rows.Count, "AN").End(xlUp))
      If Not MonDico.Exists(c.Value) And c.Value <> "" Then MonDico.Add c.Value, c.Value
   Next c
   Me.ComboBox1.List = MonDico.items
 End With
End Sub
Private Sub ComboBox1_Change()
Dim MonDico As Object
Dim c
With Feuil1 ''''''''''''''''''REVOIR LE CODENAME de l'onglet
ComboBox2.Text = ""
Set MonDico = CreateObject("Scripting.Dictionary")
   For Each c In .Range(.[AN2], .[AN65000].End(xlUp))
   If ComboBox1.Text = c.Value Then
   If Not MonDico.Exists(.Cells(c.Row, 1)) Then
   MonDico.Add .Cells(c.Row, 1).Value, .Cells(c.Row, 1).Value
   End If
   End If
   Next c
   Me.ComboBox2.List = MonDico.items
End With
    'Remplissage Combo2
End Sub
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
 

Pièces jointes

  • fichier_test(2).xls
    86.5 KB · Affichages: 57
  • fichier_test(2).xls
    86.5 KB · Affichages: 48
  • fichier_test(2).xls
    86.5 KB · Affichages: 43

Dranreb

XLDnaute Barbatruc
Re : Relation entre 2 ComboBox

Bonjour.
Quel est donc ce mystère ?
Dans ce fichier que je joins, je clique sur le bouton formulaire.
Dans le ComboBox de droite, il m'est proposé "x" ou "y". Et quand j'en choisis un, il me propose bien les code du "x" ou du "y" dans le ComboBox de gauche. Pourquoi ça ne marche pas chez vous ? Vous n'auriez pas remis ces satanés RowSource par hasard ? Il sont inutiles puisque dans les CascSoc.Add vous spécifiez les colonne avec lesquelles il doit se débrouiller.

À +
 

Pièces jointes

  • CbxCasC_fichier_test.xls
    184 KB · Affichages: 59
  • CbxCasC_fichier_test.xls
    184 KB · Affichages: 58
  • CbxCasC_fichier_test.xls
    184 KB · Affichages: 51

Dranreb

XLDnaute Barbatruc
Re : Relation entre 2 ComboBox

Ça ne me dit toujours pas si ça fonctionne enfin chez vous, surtout si vous vous vous êtes rabattu sur une autre solution, automatiquement moins bonne, et moins facile à gérer, comme le prouve votre nouvelle discussion !
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 603
Membres
104 224
dernier inscrit
Brilma