Bonjour,
Je souhaite effectuer une validation de données de cellule de type liste avec des données stockées dans une variable de type tableau.
Le code élimine les doublons d'une liste de la feuille "BDD Libellé" en stockant chaque nouvel élément dans une table à une colonne. Ensuite, je souhaite que la cellule S7 de la feuille "Application" ait une validation des données avec la liste de cette table.
Pour rendre le classeur moins lourd, je souhaite éviter d'avoir à inscrire ces valeurs dans une feuille.
Voici le code que j'ai actuellement.
Lorsque je remplace
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 Private Sub Worksheet_Change(ByVal Target As Range) Dim Montab_domaine() As Variant nb_piece_codif = Worksheets("Application").Range("W3").Value num_piece = 7 If Not Application.Intersect(Target, Columns(1)) Is Nothing Then 'Si modification d'une valeur de la colonne For num_piece = 7 To nb_piece_codif + 7 nb = 0 Compteur = 0 For i = 2 To Sheets("BDD Libellé").Cells(1, 1).End(xlDown).Row Var = Sheets("BDD Libellé").Cells(i, 1).Value ReDim Preserve Montab_domaine(nb) Compteur = 0 For j = 0 To nb If Montab_domaine(j) = Sheets("BDD Libellé").Cells(i, 1).Value Then Compteur = Compteur + 1 End If Next If Compteur = 0 Then Montab_domaine(nb) = Sheets("bDD Libellé").Cells(i, 1).Value nb = nb + 1 End If Next ' --------------------- VALIDATION DES DONNEES ------------------------- With Sheets("Application").Cells(num_piece, 19).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Montab_domaine[]" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Next End If End Subpar
Code : Sélectionner tout - Visualiser dans une fenêtre à part Formula1:="=Montab_domaine[]"
, la validation des données s'effectue bien avec la 4ème valeur de mon tableau, mais impossible de mettre l'ensemble des valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Formula1:="=Montab_domaine(4)"
Merci à vous,
Partager