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.

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 Sub
Lorsque je remplace
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Formula1:="=Montab_domaine[]"
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Formula1:="=Montab_domaine(4)"
, la validation des données s'effectue bien avec la 4ème valeur de mon tableau, mais impossible de mettre l'ensemble des valeurs.

Merci à vous,