VBA Remplacer un caractère dans une cellule par le contenu de la première cellule de la colonne

Bonjour,

J’ai un fichier excel avec une liste de personnes appartenant à des groupes différents. Leur appartenance à l’un de ces groupes est indiqué par un X dans la cellule correspondante.
Je souhaite remplacer le X par le nom du groupe qui se trouve en haut de la colonne.

Source pour Xswitch.xlsx (99,7 Ko)

J’ai essayer avec une formule mais j’ai trop de groupe donc j’arrive à la limite des capacités de la formule.
=SI(K2=“X”;$K$1;SI(L2=“X”;$L$1;SI(M2=“X”;$M$1;SI(N2=“X”;$N$1;SI(O2=“X”;$O$1;SI(P2=“X”;$P$1;SI(Q2=“X”;$Q$1;SI(R2=“X”;$R$1))))))))&SI(S2=“X”;$S$1;SI(T2=“X”;$T$1;SI(U2=“X”;$U$1;SI(V2=“X”;$V$1;SI(W2=“X”;$W$1;"")))))

Voici un début de formule VBA mais qui m’oblige à sélectionner colonne par colonne… :

Sub Xswitch()
'
' Xswitch Macro
'

'
    Dim Col As Integer

    Col = ActiveCell.Column
    
    Selection.Replace What:="X", Replacement:=Cells(1, Col), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Merci pour votre aide.

Bonjour @Speedworm,
pas besoin de macro, une petite formule suffit Source pour Xswitch.xlsx|attachment (123,8 Ko)