oui, c’est mieux quand c’est pour plusieurs cellules en même temps ! ![]()
je m’en suis inspiré pour faire la v6 : Essai v6.xlsm (17,2 Ko)
mais j’ai préféré faire avec « c » et « x » seulement (et uniquement en minuscules,
pas en majuscules) ; j’ai pas envie de taper « C » ou « X » et j’appuie sur Verr Maj
seulement quand je vais à avoir taper beaucoup de lettres en majuscules, ce qui
est très rare : la plupart du temps, mon clavier est en minuscules.
je connais Intersect(Target, ...) mais je ne l’ai pas utilisé dans v5 ni dans v6
car la dernière ligne est variable.
tu as utilisé Me.Range("B3:C100") ; pourquoi Me. ? moi je l’utilise seulement dans un
UserForm ; ici, le Me. est pour Feuil1, mais pour moi, il est inutile car comme la sub est
dans le Module de Feuil1, Range("B3:C100") sans référence de feuille suffit : c’est une
référence implicite à la feuille du module Feuil1, de la même façon que dans un module
standard, ça ferait référence à la feuille active.
pour le 100 de Range("B3:C100"), j’ai préféré l’adapter selon la dernière cellule utilisée
de la colonne A ; ici c’est A33.
j’ai préféré supprimer ton Case "" car ainsi, quand on supprime des coches via la touche
Suppression : ça remet la police "Calibri" ; dans v5, je l’avais fait exprès pour qu’il n’y
ait pas ❹ et le symbole bizarre de la feuille quand on tape « c » ou « x » dans une cellule
vide ; en laissant Case "", après effacement de coches, ça laissait "Wingdings 2".
Code VBA de Module1 :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Isect As Range, c As Range, d&, v$
d = Cells(Rows.Count, 1).End(3).Row
Set Isect = Intersect(Target, Range("B3:C" & d))
If Isect Is Nothing Then Exit Sub
Application.EnableEvents = 0
For Each c In Isect.Cells
v = c.Value
Select Case v
Case "c", "x"
c.Font.Name = "Wingdings 2"
c.Value = IIf(v = "c", "R", "S")
Case Else: c.Font.Name = "Calibri"
End Select
Next c
Application.EnableEvents = -1
End Sub
