Bonjour,

Bon je suis toujours avec mes tableaux structurés !


Voilà j'alimente une combobox d'un userform à partir d'un tableau structuré (qui se nomme BdD_Matiere) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
UsF.cbx_Matiere.List = Range("BdD_Matieres").Value
Lorsque je ferme l'userform je souhaite vérifier si la valeur du combobox existe dans le tableau structuré. Si cette valeur n'existe pas alors je l'ajoute.

Voici ma fonction qui marche mais qui n'est pas du tout optimisée. Peut-être sauriez vous m'aider à améliorer tout ça ?

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
Sub testing()
    Checking_Bd usf1.cbx1.Value, "BdD_Matieres"
    'Checking_Bd "Plastique", "BdD_Matieres"
    'Checking_Bd "Bob", "BdD_Matieres"
End Sub
 
Function Checking_Bd(Valeur As String, table As String)
    Dim Result, i As Integer, BdD As ListObject, BdD2 As Range
    table = "" & table & ""
    Set BdD = Feuil2.ListObjects(table)
    Set BdD2 = Range(table)
 
    If Valeur <> "" Then
        Result = Evaluate("match(""" & Valeur & """," & BdD & ",0)")
        If IsError(Result) Then
           BdD.ListRows.Add
           i = BdD.ListRows.Count
           BdD2.Item(i, 1) = Valeur
        End If
    End If
End Function
Je pense qu'on peut faire plus propre mais je sèche

Merci de votre aide