1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Private Sub Workbook_Open() 'à l'ouverture du classeur
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim L As String 'déclare la variable L (Liste)
Set O = Worksheets("AMT") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A2").CurrentRegion 'définit le tableau des valeur TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeur TV (en partant de la seconde)
L = "FTM" & Split(TV(I, 1), " ")(1) & "01" 'initialise la liste L
For J = 2 To 40 'boucle de 2 à 40 (remplace par 50 si nécessaire car c'est pas clair dans ton explication)
L = L & "," & "FTM" & Split(TV(I, 1), " ")(1) & CStr(Format(J, "00")) 'redéfinit la liste L
Next J 'prochaine valeur de la boucle
With O.Cells(I, "D").Validation 'prend en compte la validation de donnée dans la cellule ligne I colonne D
.Delete 'supprime une éventuelle ancienne validation de donnée
.Add xlValidateList, Formula1:=L 'définit la liste L comme liste de validation de donnée
End With 'fin de la prose en compte dela validation de donnée dans la cellule ligne I colonne D
Next I 'prochaine ligne de la boucle
O.Activate.Active L 'onglet O
End Sub |
Partager