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

Fermé
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015 - 13 juin 2013 à 10:01
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 14 juin 2013 à 09:11
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
13 juin 2013 à 19:40
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 13/06/2013 à 19:45
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 vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
14 juin 2013 à 08:59
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 14/06/2013 à 09:14
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