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

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

2 réponses

  1. 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
    1. 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
  2. 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
    1. 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