Bonjour,

J'ai besoin d'une petite aide.

j'ai fais un code ya pas si longtemps, qui me permet d'ajouter des valeurs d'aprés une liste créer a partir d'une userform et la valeur choisi ce met automatiquement dans une validation de données que j'avais créer.

le résultat de la useform choisi par l'utilisateur a comme nom de variable cmbLang.Value

En faite, ce que je cherche a faire, c'est que par exemple si l'utilisateur choisi comme valeur TOTO, TOTO est automatiquement ajouter dans la validation de données, Or si il refait la meme chose en remettant TOTO, il me remet une deuxieme fois.

Ce que je voudrai c'est que avant qu'il m'ajoute TOTO dans la validation de données, il me fais une vérife pour voir si il est pas déja présent et si il est présent il me dit "Existe deja" sinon il continue la procédure.

Voici le code :

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
Private Sub btnOK_Click()
 
Dim list As String
Dim language As String
Dim colvide As Integer
Dim line As Long
 
 
 
    MsgBox "Vous avez saisi : " & cmbLang.Value
 
 
    list = Worksheets("Init").Range("Lang").Validation.Formula1
    'Se place dans la case "Lang" pour faire une nouvelle Formule de Validation de Données
    list = Replace(list, ";", ",")
    'Remplace le ; par , car en VB la syntaxe est différente
 
 
    With Range("Lang").Validation
    'Utilise la case "Lang" pour faire la validation de données
        .Delete
        'Efface la liste qu'il y avait avant dans la cellule.
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=list & "," & cmbLang.Value
        'Rajoute les valeurs dans un Validation de Données
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
 
    End With
 
 
        line = 2
        colvide = Cells(line, 256).End(xlToLeft).Column + 1
        'permet de trouver la derniére case Vide de la ligne 2
        Cells(line, colvide) = cmbLang.Value
        'Implante dans la case vide trouvé la valeur de cmbLang.Value
 
 
 
Unload Me
 
End Sub