Résultat d'un userform avec comboboxs

Fermé
Percevalx - 10 oct. 2011 à 19:33
Bonjour,






Bonjour à tous,

Je voudrai créer une liste de matériel à selectionner dans un userform avec bouton "OK" pour insérer le résultat selectionné dans ma 3eme combobox dans la cellule A1 puis sans que l'userform ne se ferme, pouvoir choisir un autre produit et que celui ci s'affiche en A2 et ainsi de suite jusqu'au clic sur le bouton "VALIDER".

Je suis extra débutant et j'ai réussi à sortir le code suivant en faisant des recherches mais là au terme d'une journée de cours online, tutos, puisages, essais etc je me permets de men remettre à ceux qui savent..

________________________________________

Option Explicit

Dim Ws As Worksheet
Dim NbLignes As Integer

Private Sub CommandButton1_Click()

End Sub

Private Sub Label1_Click()

End Sub

Private Sub Label2_Click()

End Sub

'Les données sont dans les colonnes A à D, d'un onglet nommé "Base".
'La procédure effectue un remplissage conditionnel des Combobox en fonction de
'ce qui est sélectionnée dans le contrôle précédent:
'La sélection du ComboBox1 (données colonne A) définit le contenu du ComboBox2 (données colonne B) ,
'La sélection du ComboBox2 définit le contenu du ComboBox3 (données colonne C) ...etc...
'

Private Sub UserForm_Initialize()
'Définit la feuille contenant les données
Set Ws = Worksheets("Base")
'Définit le nombre de lignes dans la colonne A
NbLignes = Ws.Range("A65536").End(xlUp).Row

'Remplissage du ComboBox1
Alim_Combo 1

End Sub


Private Sub ComboBox1_Change()
'Remplissage Combo2
Alim_Combo 2, ComboBox1.Value
End Sub


Private Sub ComboBox2_Change()
'Remplissage Combo3
Alim_Combo 3, ComboBox2.Value
End Sub






'Procédure pour alimenter les ComboBox
Private Sub Alim_Combo(CbxIndex As Integer, Optional Cible As Variant)
Dim j As Integer
Dim Obj As Control

'Définit le ComboBox à remplir
Set Obj = Me.Controls("ComboBox" & CbxIndex)
'Supprime les anciennes données
Obj.Clear

'alimente le Combobox initial (Combobox1)
If CbxIndex = 1 Then
'Boucle sur les lignes de la colonne A (à partir de la 2eme ligne)
For j = 2 To NbLignes
Obj = Ws.Range("A" & j)
'Remplit le ComboBox sans doublons
If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j)
Next j
Else
'Alimentation conditionnelle des autres Combobox en fonction de
'ce qui est sélectionnée dans le contrôle précédent:
'(La sélection du ComboBox1 définit le contenu du ComboBox2,
'La sélection du ComboBox2 définit le contenu du ComboBox3 ...etc...)
For j = 2 To NbLignes
If Ws.Range("A" & j).Offset(0, CbxIndex - 2) = Cible Then
Obj = Ws.Range("A" & j).Offset(0, CbxIndex - 1)
If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j).Offset(0, CbxIndex - 1)
End If
Next j
End If

'Enlève la sélection dans le ComboBox
Obj.ListIndex = -1


End Sub
__________________________________________________

Et si c'estpas trop long pour vous, est il possible de rajouter un combo avec une valeur nul pour inserer la quantité de chaque produiten cellule voisine B1, B2..

Je vous remercie par avance pour vos réponses et vous envie votre maitrise..