Microsoft 365 exécution code si sélection d'une ligne entière

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me voilà devant un nouveau be"soin que je ne parviens pas à résoudre.
Pourtant, je pense que ce n'est pas bien compliqué mais je n'y arrive pas malgré mes recherches et essais.

Si solution, ça m'arrangerait bien :)

Je voudrais, si clic sur le n° d'une ligne (n'importe laquelle) - donc sélection d'une ligne entière,
que dans la cellule colonne A de cette ligne apparaisse la mention "OK"

Mais uniquement si sélection d'une ligne entière
Pas si clic dans une cellule ou sélection plusieurs cellules

Je joins un petit fichier test.
Avec mes remerciements
Je vous souhaite à toutes et à tous une belle fin de journée,
Amicalement,
Lionel
 

Pièces jointes

  • si_select_ligne_entiere.xlsm
    14.7 KB · Affichages: 2

Robert

XLDnaute Barbatruc
Bonjour Arthour, bonjour le forum,

Essaie comme ça (à placer dans l'onglet concerné) :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = Application.Columns.Count Then Cells(Target.Row, "A").Value = "OK"
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, arthour, Robert

Une autre syntaxe
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
T(1) = IIf(T.EntireRow.Address = Selection.Address, "OK", vbNullString)
End Sub

EDITION: Bonsoir job75 (je n'avais pas rafraîchi la page)
 

Staple1600

XLDnaute Barbatruc
Re

Du coup, en prenant en compte la réponse de Job75
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
T(1) = IIf((T.EntireRow.Address = Selection.Address) And T.Rows.Count = 1, "OK", vbNullString)
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
LOL, effectivement ça beug si je sélectionne toute la feuille.
Mais je n'ai à sélectionner qu'une seule ligne à la fois :)
Mais je garde tous les codes c'est génial car un jour ....... quand je serai encore plus vieux et que j'aurai plus de temps,
j'essaierai de faire un fichier recueil de codes.
Un jour LOL ......
lionel,
 

job75

XLDnaute Barbatruc
Bonsoir JM,

L'effacement que tu proposes sur T(1) ne va pas : la sélection d'une cellule l'efface...

Si l'on veut effacer le "OK" précédent :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Columns.Count = Columns.Count Then [A:A].Replace "OK", "", xlWhole: Target(1) = "OK"
End Sub
A+
 
Haut Bas