Sub v_onglets()
Dim s As Worksheet 'déclare la variable s
Dim x As Integer 'déclare la variable x
Dim y As Integer 'déclare la variable y
For Each s In Sheets 'boucle sur tous les onglets (par onglet)
' création de la liste des onglets sans celui actif
y = 1 'definit la variable y
s.Range("IV1").CurrentRegion.Delete 'efface les anciennes valeur
s.Range("A1").Clear 'efface la validation et le contenu de A1
For x = 1 To Sheets.Count 'boucle sur tous les onglets (par index)
'Condition : si le nom de l'onglet est différent du nom de l'onglet indexé
If s.Name <> Sheets(x).Name Then
s.Cells(y, 256).Value = Sheets(x).Name 'place le nom de l'onglet dans la dernière colonne
y = y + 1 'redéfinit la variable y
End If 'fin de la condition
Next x 'prochain onglet (par index) de la liste
s.Range("IV1").CurrentRegion.Name = "Valid" & s.Index 'nomme la plage de la dernère colonne
' Création de la validation de données en A1
With s.Range("A1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Valid" & s.Index
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Next s 'prochain onglet de la liste
End Sub