Recupérer le numéro de ligne d'une forme

DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un tableau d'environ 150 lignes avec dans la colonne L, et pour chaque ligne un bouton. ( une forme carré avec écrit ok dessus)

Je voudrais qu'a chaque fois que l'on clique sur le bouton d'une ligne, il agisse sur la ligne. (qu'il vide la case "I" de cette ligne )

Je ne sais pas comment effectuer cette commande, il faudrait que je récupères le numéro de ligne du bouton. Une idée ?

Autre chose, j'aimerai insérer un bouton "Ok" type windows, plutot qu'une forme avec écrit ok dessus, quelqu'un peut m'éclairer ?

Merci d'avance,
DGVDR
A voir également:

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Pas besoin de forme ni de bouton !
Écris directement les Ok dans les cellules de la colonne L (avec les bordures et la couleur tu peux simuler la forme d'un bouton)

Utilises le code suivant (il suffit de cliquer sur le ok) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Columns("L:L")) Is Nothing Then Exit Sub
If Not Target.Value = "Ok" Then Exit Sub
Target.Offset(, -3).ClearContents
End Sub

Copier le code ci-dessus / Clic droit sur l'onglet de feuille / visualiser le Code / Coller
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
PS : Utilises plutôt ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range
If Intersect(Target, Columns("L:L")) Is Nothing Then Exit Sub
For Each cel In Intersect(Target, Columns("L:L")).Cells
  If cel.Value = "Ok" Then cel.Offset(, -3).ClearContents
Next cel
End Sub
0
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Patrice33740,

Merci pour ton code que je vais mettre en application !

Quelques questions :

Quel est l'interet de / à quoi sert :

(ByVal Target As Range)


cel.Offset(, -3).ClearContents


Merci,

DGVDR
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re,

Worksheet_SelectionChange(ByVal Target As Range) est une procédure évènementielle de la feuille de calcul Excel qui s'exécute automatiquement lorsque la sélection change ((changement de cellule active). Excel envoi la plage des cellules sélectionnées à cette procédure à l'aide de l'argument Target.

cel.Offset(, -3).ClearContents efface le contenu de la cellule située 3 colonnes avant la cellule cel

Patrice

PS : Dans l'éditeur Visual Basic, il suffit de placer le curseur texte dans un mot et d'appuyer sur F1 pour obtenir l'aide concernant ce mot.
0