Bonjour à tous,

Nouvellement en stage en entreprise afin de cloturer mon master en qualité des produits de santé, une nouvelle tâche des plus ardues (pour moi) m'a été confiée.
On m'a chargé de réaliser un formulaire afin de simplifier le listing d'arrêt de commercialisation.

Grâce à de multiples tutoriels j'ai réussi à réaliser mon formulaire avec des boutons commandes me permettant de créer une nouvelle fiche, d'éditer une existante et un autre pour de sortir de mon formulaire. De ce côté là tout fonctionne très bien !

Le problème qui se présente est le suivant : On me demande d'ajouter à mon tableau la liste des services concernés par cet arrêt de commercialisation. Pour se faire j'ai créée une Listbox à sélection multiple contenant les noms de mes différents services via RawSources. Je voudrais que les services sélectionnés apparaissent dans une seule et même cellule de la colonne H et que l'intéraction avec mes boutons Nouvelle produit (command button 1) et Editer (commande button 2) soit possible.
Jusqu'à présent je n'ai réussi qu'a faire apparaitre les selections multiples dans LES dernières cases vides de ma colonne H et je suis bloqué. J'ai commencé VBA hier et beaucoup de choses me dépassent. Je ne sais pas si j'ai été clair dans ma demande.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Option Explicit
Dim Ws As Worksheet
 
'Pour le formulaire
Private Sub UserForm_Initialize()
    Dim J As Long
    Dim I As Integer
 
 
    Set Ws = Sheets("Produits") 'Correspond au nom de votre onglet dans le fichier Excel
    With Me.ComboBox1
        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("A" & J)
        Next J
    End With
    With Me.ComboBox2
        For J = 2 To Ws.Range("B" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("B" & J)
        Next J
    End With
    For I = 1 To 5
        Me.Controls("TextBox" & I).Visible = True
    Next I
End Sub
 
'Pour la liste d?roulante numéro d'arret de commercialisation
Private Sub ComboBox1_Change()
    Dim Ligne As Long
    Dim I As Integer
 
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    ComboBox2 = Ws.Cells(Ligne, "B")
    For I = 1 To 5
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub
 
'Pour le bouton Nouveau produit
Private Sub CommandButton1_Click()
    Dim L As Integer
    If MsgBox("Confirmez-vous l'insertion de ce nouveau produit?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        L = Sheets("Produits").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement ? la premi?re ligne de tableau non vide
        Range("A" & L).Value = ComboBox1
        Range("B" & L).Value = ComboBox2
        Range("C" & L).Value = TextBox1
        Range("D" & L).Value = TextBox2
        Range("E" & L).Value = TextBox3
        Range("F" & L).Value = TextBox4
        Range("G" & L).Value = TextBox5
 
    End If
End Sub
 
'Pour le bouton Modifier
Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim I As Integer
 
    If MsgBox("Confirmez-vous la modification de ce produit ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = ComboBox2
        For I = 1 To 5
            If Me.Controls("TextBox" & I).Visible = True Then
                Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
            End If
        Next I
    End If
End Sub
 
'Pour le bouton Quitter
Private Sub CommandButton3_Click()
    Unload Me
End Sub
Mon formulaire ressemble à ca pour le moment Nom : formulaire .jpg
Affichages : 2766
Taille : 333,8 Ko
Je dois vraisemblablement utiliser mon command button 4 "OK" pour réaliser l'opération souhaitée (enfin je crois) mais malgré mes différentes recherches sur les forums je n'ai pas trouvé de topic me permettant de résoudre mon problème avec le peu de connaissance en VBA dont je dispose. Je pense être passé plusieurs fois devant la solution mais ma compréhension limité du langage VBA m'a empêché d'adapter les exemples vus à mon problème.

Mon tableau se présente comme ceci et l'objectif et de faire apparaitre chaque services concernés par l'arret dans la colonne H de la ligne correspondant à chaque produit.
Nom : Tableau exemple.png
Affichages : 2523
Taille : 39,1 Ko

Je vous remercie par avance de l'aide que vous pourrez m'apporter.
Cordialement,
Erwan.