Solution pour un problème VBA Excel.

Résolu
2pax.cruz -  
Yoskopolite Messages postés 92 Statut Membre -
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. Yoskopolite Messages postés 92 Statut Membre 8
     
    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
  2. 2pax.cruz
     
    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
  3. Yoskopolite Messages postés 92 Statut Membre 8
     
    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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  4. 2pax.cruz
     
    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. 2pax.cruz
       
      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. 2pax.cruz
       
      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. Yoskopolite Messages postés 92 Statut Membre 8
       
      Bien vu.

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