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
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
Ah oui ? Alors sélectionne la plage A1:A16384 pour voir ! Il vaut mieux :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Columns.Count = Columns.Count Then Target(1) = "OK"
End Sub
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
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,
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
Private Sub Worksheet_SelectionChange(ByVal T As Range)
T(1) = Application.Rept("OK", (T.EntireRow.Address = Selection.Address) And T.Rows.Count = 1)
End Sub