Recherche valeur selon sélection liste déroulante

Bonjour à tous,

Je me retrouve bloqué sur l'avancement d'un de mes fichiers Excel.. Je m'explique :

Dans le cadre de ce que je veux faire, je veux mettre à disposition un outil qui permet à l'utilisateur de faire une sélection selon le cas dans lequel il se trouve.

Cas 1 : il a un seul choix de produit avec une valeur unique = pas de problème.

Cas 2 : il choisi plusieurs produits ...

J'ai fait une liste déroulante de sélection qui permet d'identifier les choix de l'utilisateur selon une plage de données définie. J'arrive à identifier ces choix dans une cellule, ils sont séparés par un "-". Ainsi je connais tout les choix que l'utilisateur fait.

Dim i As Long
Dim sTemp As String
Dim a
Dim bTest As Boolean

Private Sub ListBox1_Change()

  If bTest Then

  Exit Sub

  End If

  sTemp = ""
  For i = 0 To Me.ListBox1.ListCount - 1

    If Me.ListBox1.Selected(i) Then

    sTemp = sTemp & Me.ListBox1.List(i) & "-"

    End If

  Next

  sTemp = VBA.Left(sTemp, VBA.Len(sTemp) - 1)
  ActiveCell.Offset(0, 1) = sTemp

End Sub

Private Sub ListBox2_Click()

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Column = 7 Then

    If Not Cells(ActiveCell.Row, 7) = "Summenstrang" Then

     Me.ListBox1.Visible = False

      Exit Sub

      End If

      With Me.ListBox1

      .MultiSelect = fmMultiSelectMulti
      .ListStyle = fmListStyleOption
      .Height = 250
      .Width = 150
      .Font.Size = 10
      .Top = ActiveCell.Top
      .Left = ActiveCell.Offset(0, -2).Left
      .Visible = True

      End With

  Me.ListBox1.List = Worksheets("Einzugsfläche").Range(Worksheets("Einzugsfläche").Range("B4"), _
  Worksheets("Einzugsfläche").Range("B4").End(xlDown)).Value

   On Error GoTo 0

  a = VBA.Split(ActiveCell.Offset(0, 1), "-")

  If UBound(a) >= 0 Then

  For i = 0 To Me.ListBox1.ListCount - 1
    If Not IsError(Application.Match(Me.ListBox1.List(i), a, 0)) Then
      bTest = True
      Me.ListBox1.Selected(i) = True
      bTest = False

    End If

  Next

  End If

Else

Me.ListBox1.Visible = False

End If

End Sub

Premier soucis avec ces lignes de code, si l'utilisateur décide de tout désélectionner, je rencontre une erreur que je n'arrive pas à résoudre.

Deuxième soucis, si une valeur est présente dans la cellule que je souhaite renseigner avec l'identification des choix, une nouvelle apparaît.

Dans la continuité du choix fait par l'utilisateur, je souhaiterai faire une somme de valeurs associées à ce choix

Exemple : L'utilisateur choisi le produit A1 et B5. La valeur identifiée à A1 = 10 et B5 = 3. Je souhaiterai obtenir la valeur 13 dans une cellule..

Ainsi, je me pose la question comment identifier les valeurs associées aux choix de l'utilisateur et aussi comment procéder à somme..

Merci à vous pour vos retours,

Bonjour,

Est ce que tu pourrais joindre un fichier, ce serait plus simple pour comprendre comment fonctionne tes listbox et ce que tu souhaites faire avec les autres cellules

Rechercher des sujets similaires à "recherche valeur selection liste deroulante"