Sub Test()
Dim sep, maListe, valeurInit, valeur
Application.ScreenUpdating = False
sep = Application.DecimalSeparator
If sep = "." Then sep = "," Else sep = ";"
Worksheets("FeuilleListeA1").Activate
maListe = ListeValid(Range("a1"))
valeurInit = Range("a1").Value
For Each valeur In Split(maListe, sep)
Range("a1") = valeur
ActiveSheet.PrintPreview '(utiliser PrintOut pour imprimer)
Next valeur
Range("a1") = valeurInit
End Sub
Function ListeValid(xcell)
' retourne une liste contenant les valeurs de la liste de validation de xcell
' les élément de cette liste sont séparés par le caractère sep
Dim x, i&, t, sep, elem, s
sep = Application.DecimalSeparator
If sep = "." Then sep = "," Else sep = ";"
With xcell.Validation
x = .Formula1
If Left(x, 1) = "=" Then
t = Range(Mid(x, 2, 255)).Value
If Not IsArray(t) Then
ListeValid = t
Else
For Each elem In t: s = s & sep & elem: Next elem
ListeValid = Mid(s, 2)
End If
Else
ListeValid = x
End If
End With
End Function