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
Partager