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
    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.
      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
        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é)
      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.
        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.
        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
        3. Bien vu.

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