Combobox

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..

Bonjour

Au lieu de cette macro tu aurais fourni le fichier ad hoc, cela aurait plus mieux

lol

je m'execute amigo..


Et voilà..

Bonsoir

Une solution ?

C'est génial..

Merci beaucoup pour ton temps..

Je vais passer le mien à décortiquer le code maintenant..

Alors qlq chose d'étrange arrive mon cher Banzai64, lorsque je ferme le userform puis reclic sur le bouton de commande cela soit retréci la taille de la police dans le bouton soit cela agrandi sa forme..?? Tu sais d'ou cela pourrais venir?

Loin de moi la volonté d'abuser de ta science mais saurais tu s'il est possible de rajouter un combobox dasn le userform avec une valeur numérique pour inserer la quantité de chaque produit en cellule voisine B1, B2...


Alors qlq chose d'étrange arrive mon cher Banzai64, lorsque je ferme le userform puis reclic sur le bouton de commande cela soit retréci la taille de la police dans le bouton soit cela agrandi sa forme..?? Tu sais d'ou cela pourrais venir?

Loin de moi la volonté d'abuser de ta science mais saurais tu s'il est possible de rajouter un combobox dasn le userform avec une valeur numérique pour inserer la quantité de chaque produit en cellule voisine B1, B2...

Bonjour

Percevalx a écrit :

Alors qlq chose d'étrange arrive mon cher Banzai64, lorsque je ferme le userform puis reclic sur le bouton de commande cela soit retréci la taille de la police dans le bouton soit cela agrandi sa forme..?? Tu sais d'ou cela pourrais venir

Je pense (sans être sur) c'est que bouton a le focus

Un essai avec un combobox pour la quantité

C'est top... Je te suis infiniment reconnaissant..

Ça le fait plus sur le bouton d'ailleurs.. Ça se paramètre où le focus au cas où?

Bonjour

Si cela le fait toujours, mais comme le bouton est plus grand, c'est un peu moins perceptible

Cela ne se règle pas, fonctionnement 'normal' du bouton

Je ne pense pas que ce soit 'normal', je vois de quoi tu parles, c'est de cet effet de relief, mais là ça double la valeur des dimensions du bouton et si c'est sur la police que ça agit au bout de 3 clics on n’arrive plus à lire.

Pour info la version 3 que j'ai tenté de faire évoluer en PJ:

Me restera à finir les calculs, un jour le VBA n'aura plus de secret pour moi..


Oups, le fait que j'ai rajouté une colonne dans le tableau de résultat aurait il eu une incidence qui m'aurait échappé.

Lorsque l'on sélectionne dans le userform1 "halogene" puis "culot E27" les résultats sont tr op nombreux en combobox3..??

En tout cas merci encore, tu as résolu en 5 mins des heures de tortures cérébrales..

Bonjour

Oui j'ai vu le résultat sur les boutons, c'est bizarre

Je n'ai pas ce problème j'ai fait plusieurs essais sans obtenir ce que tu as

Si quelqu'un peut expliquer ?

Merci

Rechercher des sujets similaires à "combobox"