Aide CombBox - Userform - Tableau & Gestion

[Résolu]
Signaler
Messages postés
53
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
53
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
31 mars 2008
-
Bonjour à tous,

En espérant que vous puissiez m'aider....merci
N'hesiter pas à me demander si cela n'est pas assez clair

J'ai plusieurs questions à vous poser, pour commencer:

Explication de la mise en forme:


J'ai un fichier Excel composé d'une 15aines de feuilles de style d'outils dont une page d'Accueil....
Le but est de créer une Gestion de stock, pour le moment tous fonctionne impecablement je peut ajouter, retirer, faire inventaire, faire des recherches, des consommations....
Mais maintenant j'ai un pb qui se pose,
Pour une sorte d'outil, je veux intégrer les references fournisseurs....et j'ai le tableau suivant:

Voila, j'ai une userform constituée de 3 combobox

Combobox Diametres
Combobox Fournisseurs
Combobox References Fournisseurs

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 2: F14 à H14 
      - Ref 7 à Ref9 Pour Fournisseurs 3: I14 à K14 
      ...etc 

      Ce que je souhaite, c'est lorsque je selectionne dans ma seconde combobox, le fournisseur de mon Outils, Cela entraine que dans troisieme combobox, il ne reste le choix que des reference de celui - ci.

J'ai composé grace à tout ce que j'ai pu trouver les aides et à votre aide depuis le début le code suivant:

Mais celui - ci comporte quel incovénients:

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
 
Code Ci-dessus fonctionne bien et me remplit 1ere combobox
 

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_Marques_Fr_Finition.AddItem Mes_Fournisseurs_Fraises
Next Col26







Code Ci-dessus fonctionne bien et me remplit 2nd combobox  mais me laisse des blancs dans la liste à cause des celulles fusionnées

?????





Ou bien le code suivants:





With Sheets("Fraises de Finition")




Dim Lig26 As Integer
Dim Col26 As Integer
Lig26 = 13
      For Col26 = 3 To 17
             If Cells(Lig26, Col26).Value <> "" Then  'si la cellule n'est pas vide alors
            Gestion_Outils_2.ComboBox_Marques_Fr_Finition.AddItem .Cells(Lig26, Col26).Value
            End If
      Next Col26
      
 End With
 
Code Ci-dessus fonctionne bien et me remplit 2nd combobox  mais ne me laisse pas de blanc dans la liste à cause des celulles fusionnées mais par contre code ne fonctionnant que si je fais lecture à partir de visual basic et que mon fichier Excel est ouvert sur la page "Fraises de Finition" Or il faudrait que cela fonctionne à partir du bouton qui actionne l'Userform à la page d' "accueil".


?????

End Sub







''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''






Private Sub ComboBox_Marques_Fr_Finition_Change()






If Gestion_Outils_2.ComboBox_Marques_Fr_Finition.Value = "TITTEX" Then
ComboBox_Ref_Fr_Finition.Clear
ComboBox_Ref_Fr_Finition.AddItem "Ref1"
ComboBox_Ref_Fr_Finition.AddItem "Ref2"
ComboBox_Ref_Fr_Finition.AddItem "Ref3"






ElseIf Gestion_Outils_2.ComboBox_Marques_Fr_Finition.Value = "FRAISA" Then
ComboBox_Ref_Fr_Finition.Clear
ComboBox_Ref_Fr_Finition.AddItem "Ref4"
ComboBox_Ref_Fr_Finition.AddItem "Ref5"
ComboBox_Ref_Fr_Finition.AddItem "Ref6"






ElseIf Gestion_Outils_2.ComboBox_Marques_Fr_Finition.Value = "PROTOTYP" Then
ComboBox_Ref_Fr_Finition.Clear
ComboBox_Ref_Fr_Finition.AddItem "Ref7"
ComboBox_Ref_Fr_Finition.AddItem "Ref8"
ComboBox_Ref_Fr_Finition.AddItem "Ref9"






ElseIf Gestion_Outils_2.ComboBox_Marques_Fr_Finition.Value = "X" Then
ComboBox_Ref_Fr_Finition.Clear
ComboBox_Ref_Fr_Finition.AddItem "Ref10"
ComboBox_Ref_Fr_Finition.AddItem "Ref11"
ComboBox_Ref_Fr_Finition.AddItem "Ref12"






ElseIf Gestion_Outils_2.ComboBox_Marques_Fr_Finition.Value = "Y" Then
ComboBox_Ref_Fr_Finition.Clear
ComboBox_Ref_Fr_Finition.AddItem "Ref13"
ComboBox_Ref_Fr_Finition.AddItem "Ref14"
ComboBox_Ref_Fr_Finition.AddItem "Ref15"






End If






Code Ci-dessus fonctionne bien et me remplit 3eme combobox  en fonction du choix de la deuxième mais n'existerait-il pas plus simple et moins long????...lol






End Sub





Voila,
Est-ce que vous pouvez m'aider, je vous remercie....
N'hesiter pas à demander si vous n'avez pas compris ce que je souhaitais

A+

2 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

il manque un point pas facile a voir je doit dire.  Ce point dit  a VBA que la fonction cells doit etre executée en liaison avec la feuille "fraise de finition" et ce via la fonction with

With Sheets("Fraises de Finition")

Dim Lig26 As Integer
Dim Col26 As Integer
Lig26 = 13
      For Col26 = 3 To 17

             If .
Cells(Lig26, Col26).Value <> "" Then  'si la cellule n'est pas vide alors

            Gestion_Outils_2.ComboBox_Marques_Fr_Finition.AddItem .Cells(Lig26, Col26).Value
            End If
      Next Col26
      
 End With

je l'ai testé donc cela devrait marcher maintenant.
Concernant ta 2ieme question je n'est helas de temps a lui consacrer maintenant, desolé

Autre chose, ne m'envois pas de message privé pour repondre a tes question. Pose les ici... merci
Normalement je repond, si je n'ai pas repondu c'est que je n'est pas le temps, de plus je suis aux us donc
il faut tenir compte du decalage (7heures)

A+
Messages postés
53
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
31 mars 2008

Merci Bigfish_Le vrai
ca marche,
Pas de pb pour les messages
Qd je pense que j'ai cherché toute la journée pour un point "."