Bonjour…
« C'est simple mais je suis comme un débutant que je suis »
Autant commencer avec les outils qui permettent de simplifier les choses.
En nommant la plage :
Dans la fenêtre des codes de l’onglet (clic bouton droit sur son nom puis Visualiser le code) pour l’évènementielle qui gère les cellules de la plage (X ou vide) et n° de la colonne du X de la ligne* :
Dim L As Long ‘variable de ligne
Private Sub Worksheet_SelectionChange(ByVal R As Range)
‘ obligatoire pour éviter des boucles infinies
Application.EnableEvents = 0 ‘
‘sortie si clic hors plage
If Intersect(R, [Plage]) Is Nothing Or R.CountLarge > 1 Then Exit Sub
‘ligne de la cellule et sa vie d’ange pour n‘avoir qu’un cas
L = R.Row - 1: [Plage].Rows(L).EntireRow = ""
‘x ou vide au clic
R = IIf(R = "", "X", "")
‘si x, report en première colonne de la ligne le N°
If R = "X" Then [Plage].Item(L, 0) = R.Column –1
‘donc obligatoire pour gérer les évènements à l’avenir
Application.EnableEvents = 1
End Sub
Maintenant on peut aussi profiter des nombreuses propriétés d’un Tableau d’onglet, notamment la possibilité de le déplacer dans le classeur, mais c’est une autre histoire que je pourrais raconter.
* Si on ne vide pas la ligne, on a un N° sans savoir quelle colonne on a le nouvel x.
Si on veut garder les x successifs, il faudra mettre en évidence le dernier écrit (couleur par exemple) mais c’est encore une autre histoire.