Solution pour un problème VBA Excel.

Résolu
Bonjour,

j'ai un soucis en VBA excel. En fait, je n'arrive pas à voir comment je pourrais faire...
Je vous explique :

J'ai une liste en excel, que l'utilisateur rempli avec un formulaire. J'aimerais permettre à l'employé de supprimer des lignes facilement, sans devoir faire clic-droit supprimer.

Je vous remercie.

4 réponses

  1. Il te suffit (par le code) de sélectionner une des cases de la ligne concernée (dans mon exemple ci-dessous, ça sera A1) et de lui demander de supprimer toute la ligne :

    Range("A1").EntireRow.Delete
    0
    1. Oui, ça je sais. Mais je ne sais pas comment je peux faire pour qu'il selectionne la ligne et qu'elle se supprime...

      Merci.
      0
      1. Je me suis mal exprimé, le code que je t'ai indiqué s'occupe de supprimer la ligne sans avoir à la sélectionner.
        Mais j'ai peut-être pas tout compris à la question :-D

        PS : si tu veux que l'utilisateur sélectionne une ligne et clique sur un bouton pour la supprimer, le code du bouton sera alors :

        Activecell.EntireRow.Delete
        0
        1. Contributeur
          Bonjour,

          Pour sélectionner une plage de cellules depuis ton userform tu as le contrôle "refedit" de la boite à outils...

          tu as intérêt à vérifier que l'utilisateur n'a pris qu'une deule ligne dans le genre plage.rows.count=1(non testé)
          0
      2. Merci pour vos réponses.

        J'ai mis un bouton sur ma page. L'utilisateur sélectionne une cellule et lorsqu'il clique, la ligne se supprime.

        Mais comment puis-je faire une msgbox qui demande de confirmer la suppression de la ligne. De plus, j'aimerais savoir afficher la contenu de la première colonne dans la msgbox.

        Merci encore.
        0
        1. J'ai su afficher le tete de la première colonne de la ligne sélectionnée.

          Mais je n'arrive pas à faire de msgbox qui permette de faire ok ou cancel.
          0
        2. J'ai réussi. Merci encore.

          Je mets le code pour ceux que ça intéresse ou que ça pourrait aider :

          Sub SuppressionLigneProjet()

          Ligne = ActiveCell.Row
          Colonne = ActiveCell.Column
          Texte = Cells(Ligne, 1)

          Dim Reponse

          Reponse = MsgBox("Are you sure that you want to delete the project : '" & Texte & "'", vbYesNo + vbExclamation, "Delete confirmation")

          Select Case Reponse
          Case vbYes 'si clic sur oui
          Cells(Ligne, 1).EntireRow.Delete shift:=xlUp
          Case vbNo 'Si le bouton cliqué est non
          'on ne fait rien et la msgbox se ferme
          End Select

          End Sub
          0
        3. Bien vu.

          Mais le "shift:=xlUp", ça correspond déjà au réglage par défaut, non ?
          0