Bonjour, j'ai appris à coder sur ce forum, j'y ai cherché la solution à mon problème, mais je n'ai trouvé que des dérivé de ce problème
Voici l'objectif de mon code :
Le but est de créer une liste avec les longueurs "possible" pour un type de matériaux
Pour ceci on chercher dans une colonne les matériaux qui sont identique (les noms identiques sont forcement à la suite dans cette colonne)
Grâce à des compteurs on obtient ensuite le num de la ligne de départ et la ligne de fin
Ensuite (et c'est là qu'est le problème) je veux prendre les valeurs des longueurs associée à ces matériaux et en faire une liste dans une autre feuille.

Si vous avez d'autre question, je ne sais pas si ceci est très claire
Cordy Allemand

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
Sub Liste_Long_Reduite_Appro_Alu()
 
a = Workbooks("Appro Alu Fer.xlsm").Sheets("Appro Alu").Cells(1, 6).Value
b = Workbooks("Appro Alu Fer.xlsm").Sheets("Donnees Alu").Cells(1, 9).Value
 
For i = 3 To a + 2 'Appro Alu
 x = 0
 Z = 0
 w = 0
For j = 2 To b 'Donnees Alu
 
If Workbooks("Appro Alu Fer.xlsm").Sheets("Donnees Alu").Cells(j, 2).Value = Workbooks("Appro Alu Fer.xlsm").Sheets("Appro Alu").Cells(i, 1).Value Then
Z = j
w = 1
For k = 1 To 20
        If Workbooks("Appro Alu Fer.xlsm").Sheets("Donnees Alu").Cells(j + k, 2).Value = Workbooks("Appro Alu Fer.xlsm").Sheets("Appro Alu").Cells(i, 1).Value Then
x = x + 1
        End If
Next k
End If
 
If w = 1 Then
 
    With Sheets("Appro Alu").Cells(i, 3).Validation
        .Delete
'-------------------------------------- >>> Problème ligne suivante <<<<<------------------
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formule:="=" & "Donnees Alu!" & Range(Cells(Z, 3), Cells(Z + x, 3)).Address
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End If
 
Next j
Next i
 
End Sub