Petite macro VBA qui permet de changer de manière récursive le nom des cellules (le nom pas les valeurs).

Cette exemple

  • Boucle sur la première ligne A1, B2, C3 …
  • Vérifie si le contenu de ce champ
  • Si non vide, il renomme la cellule juste en dessous (A2, B2, C2 …) avec le contenu de la cellule initiale.
Sub NommerChamps()
   For Each c In Range([A1], [IV1].End(xlToLeft))
       If Not IsEmpty(c) Then
             ActiveWorkbook.Names.Add Name:=c, RefersTo:="=" & Range(c.Offset(1, 0), c.Offset(1, 0)).Address
       End If
   Next
End Sub

Nota la fonction offset(x,y) permet de se déplacer de de x,y depuis la cellule en focus.