Aide Tri Combobox en fonction d'une autre combobox

gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008 - 21 mars 2008 à 11:21
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 25 mars 2008 à 21:52
Bonjour à tous,

Je suis à la recherche d'aide sur les combobox

Par exemple:

J'ai 1 combobox ou je peux selectionner la caracteristique d'un outil
Puis 1 combobox ou j'insere mes fournisseurs.
Puis 1 combobox ou j'insere les references fournisseurs.

Je n'ai pas encore constitué mes tableaux mais je pense que je le ferais de la manière suivantes:
Par exemple:

Colonne A pour caractéristiques outils
Avec Ligne 1 à X de caracteristiques

Colonne B: FOURNISSEURS 1 - REFERENCE 1
Colonne C: FOURNISSEURS 1 - REFERENCE 2
Colonne D: FOURNISSEURS 1 - REFERENCE 3

Colonne E: FOURNISSEURS 2 - REFERENCE 4
Colonne F: FOURNISSEURS 2 - REFERENCE 5
Colonne G: FOURNISSEURS 2 - REFERENCE 6

Colonne H: FOURNISSEURS 3 - REFERENCE 7
Colonne I: FOURNISSEURS 3 - REFERENCE 8
Colonne J: FOURNISSEURS 3 - REFERENCE 9

Ce que je souhaite c'est par exemple:

   - Je selectionne ma caracteristique puis mon fournisseur mais que ma derniere combobox se trie automatiquement et me propose seulement les reference de celui - ci.

Est-ce possible???
Est-ce que quelqu'un peut m'aider???

En esperant avoir donné assez de détails et avoir été assez clair dans mes explications....

Merci à tous

7 réponses

Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
21 mars 2008 à 12:03
Pour ne pas utiliser une base de donnée... !
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
21 mars 2008 à 14:30
Oui ,Sans utiliser de base de donnée.
je viens de faire mon tableau sur Excel

Il est fait de la maniere suivante:

Colonne B : de ligne 15 à 35

- Caracteristiques outils

Ligne 13: 5 Fournisseurs

- Fournisseurs 1:       C13:E13      (Celulles Fusionnées)
- Fournisseurs 2:       F13:H13
- Fournisseurs 3:       I13:K13
- Fournisseurs 4:       L13:N13
- Fournisseurs 5:       O13:Q13

Ligne 14: 15 References

- Ref 1 à Ref3 Pour Fournisseurs 1: C14 à E14
- Ref 4 à Ref6 Pour Fournisseurs 1: F14 à H14
- Ref 7 à Ref9 Pour Fournisseurs 1: I14 à K14
...etc
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
21 mars 2008 à 14:55
Alors est-ce quelqu'un peut m'aider?????
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 mars 2008 à 21:40
Il semblerait que mon message n'a pas passé...

Si tu utilises des filtres sur les 2 premières colonnes  selon les critères de tes 2 premiers combobox, il te restera ce qu'il faut intégrer à ton 3e combobox dans la 3e colonne.

Charge ces données dans ton combobox après l'avoir vidé (.Clear)

Pour le tri, utilise 2 boucles, un peu comme ceci (pas testé)

For i = 0 To Combo.ListCount - 1
    For j = i to Combo.ListCount - 1
        If Combo.List(i) > Combo.List(j) Then
            TempVar = Combo.List(i)
            Combo.List(i) = Combo.List(j)
            Combo.List(j) = TempVar
        End If
    Next
Next

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
25 mars 2008 à 10:52
Salut,

Desolé de ne pas avoir donné de nouvelles.

Je n'ai pas tout compris à ton message, ce qui est sur c'est que je n'utilise pas de filtres sur les 2 premières colonnes selon les critères de mes 2 premiers combobox.....

Mon tableau est fait de la maniere suivante :

Colonne B : de ligne 15 à 35

- Caracteristiques outils

Ligne 13: 5 Fournisseurs

- Fournisseurs 1:       C13:E13      (Cellules Fusionnées)
- Fournisseurs 2:       F13:H13
- Fournisseurs 3:       I13:K13
- Fournisseurs 4:       L13:N13
- Fournisseurs 5:       O13:Q13

Ligne 14: 15 References

- Ref 1 à Ref3 Pour Fournisseurs 1: C14 à E14
- Ref 4 à Ref6 Pour Fournisseurs 1: F14 à H14
- Ref 7 à Ref9 Pour Fournisseurs 1: I14 à K14
...etc

Comment puis faire pour que lorsque je selectionne ma caracteristique dans ma première combobox, cela detecte la bonne ligne de la colonne B.
Puis que je selectionne dans ma seconde combobox, le fournisseurs de mon Outils, cela me detecte la bonne colonne C à E par exemple ( cellules fusionnées )
Cela entraine que dans troisieme combobox, il ne reste le choix que des reference de celui - ci.

En esperant que tout cela soit compréhansible ( ce n'est pas evident à expliquer ).

Merci à tous
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
25 mars 2008 à 13:30
Pour Info de viens d'ecrire ceci, pour remplir mes combobox:
Inconvenients: Le fait d'avoir fait des cellules fusionnées pour mes fournisseurs, cela me créé des blancs dans ma liste de combobox.

1ere question: Comment faire pour que ces blancs n'apparaissent pas ?

2eme question: Comment faire pour que ma "combobox references" soit fonction de ma "combobox fournisseurs" c'est à dire quelle me donne seulement la liste des Ref de ce clients?

Est-ce que quelqu'un peut m'aider?, merci à vous

Private Sub userform_initialize()





Dim Mes_Diametres_Fraises As String
   Dim Col25 As Integer
   Dim Lig25 As Integer
   Col25 = 2
   For Lig25 = 15 To 35
      Mes_Diametres_Fraises = Sheets("Fraises de Finition").Cells(Lig25, Col25).Value
      Gestion_Outils_2.ComboBox_Diametres_Fraises.AddItem Mes_Diametres_Fraises
   Next Lig25



Dim Mes_Fournisseurs_Fraises As String
   Dim Col26 As Integer
   Dim Lig26 As Integer
   Lig26 = 13
   For Col26 = 3 To 17
      Mes_Fournisseurs_Fraises = Sheets("Fraises de Finition").Cells(Lig26, Col26).Value
      Gestion_Outils_2.ComboBox_Fournisseurs_Fraises.AddItem Mes_Fournisseurs_Fraises
   Next Col26



Dim Mes_References_Fournisseurs As String
   Dim Col27 As Integer
   Dim Lig27 As Integer
   Lig27 = 14
   For Col27 = 3 To 17
      Mes_References_Fournisseurs = Sheets("Fraises de Finition").Cells(Lig27, Col27).Value
      Gestion_Outils_2.ComboBox_Mes_References_Fournisseurs.AddItem Mes_References_Fournisseurs
   Next Col27



  
End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
25 mars 2008 à 21:52
À ta première question, il faudrait vérifier si la cellule est vide avant de la mettre dans le combobox. Et tu ne devrais pas utiliser de cellules fusionnées. Tu pourrais utiliser l'alignement sur plusieurs colonnes dans le menu Format de cellules. La fusion risque de t'apporter des ennuis éventuellement.

Note: tu n'es pas obligé de définir de nouvelles variables à chaque fois que tu fais une boucle. Il ne faut pas oublier que chaque variable aura un emplacement mémoire alloué.

Dim I as Long

For I = 15 To 35
    If Sheets("Fraises de finition").Cells(13, I) <>"" Then
       Gestion_Outil_2.Combobox_Diametres_fraises.AddItem _
          Sheets("Fraises de finition").Cells(13, I)
    End if
Next

Pour ce qui est de remplir des combobox par rapport à d'autres déjà sélectionnés, la méthode du filtrage me paraît simple, sous Excel. Il te suffit de filtrer les 2 colonnes déjà sélectionnées selon le critère (Autofilter et AutoFilterMode), puis d'ajouter la 3e colonne (les cellules visibles) à ton 3e combobox. Pour trouver les cellules visibles, il y a la commande SpecialCells(XlCellTypeVisible)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous