Userform - Supprimer une ligne précise dans une liste box

Bonjour à tous,

J'ai une liste box qui fait référence à une row source avec des valeurs sur une autre feuille qui sera cachée.

Je sais supprimer la liste entièrement et y ajouter des valeurs.

Sauf que si l'utilisateur se trompe il ne peut pas supprimer une ligne précise.

Or je souhaite offrir la possibilité de supprimer une ligne sélectionnée. Comme sur la capture d'écran ci-dessous.

Voila si vous avez des pistes.

Merci d'avance et bonne après-midi.

Ps: fichier de test en PJ

capture userform excel pratique

Petit Up,

J'utilise ce code qui affiche bien la ligne sélectionnée dans la liste box.

  Private Sub OKButton_Click()
      Dim Msg As String
      Dim i As Integer
      Msg = "You selected" & vbNewLine
      For i = 0 To ListBox1.ListCount - 1
          If ListBox1.Selected(i) Then
              Msg = Msg & ListBox1.List(i) & vbNewLine
          End If
      Next i
      MsgBox Msg
      Unload UserForm1
  End Sub

Mais dans ce cas Msg.delete ne fonctionne pas, comment supprimer cette ligne?

Merci d'avance.

Re,

J'ai testé en fonction des codes d'un autre forum.

Mais la ligne Msg.RemoveItem (Msg.lst_EB.ListIndex) indique qualificateur incorrect.

Je pensais que .delete ou .remouve suffirait à supprimer la ligne qui apparait bien quand je fais

MsgBox Msg

Mon code complet qui fonctionne et fait apparaître la valeur sélectionnée dans une msgbox.

Private Sub supp_ligne_Click()

      Dim Msg As String
      Dim i As Integer
      Msg = vbNewLine
      For i = 0 To lst_EB.ListCount - 1
          If lst_EB.Selected(i) Then
              Msg = Msg & lst_EB.List(i) & vbNewLine
          End If
      Next i
      MsgBox Msg

End Sub

Bonjour à tous,

Je relance mon sujet.

Du coup vu que je souhaite supprimer dans une feuille cachée, j'ai changé mon code qui fonctionne.

En revanche je supprime bien la ligne mais comme j'ai deux listes.

Je supprime bien pour la première liste sur le premier userform mais je supprime pas avec le deuxième userform sur la deuxième liste!!

Il faudrait passer par range peut-être !! Mais j'y suis pas arrivé

Private Sub CommandButton1_Click()
Dim i As Integer

     With lst_EB
      For i = .ListCount - 1 To 0 Step -1
          If lst_EB.Selected(i) Then

            Sheets("Data").Rows(i + 2).ClearContents

          End If
      Next i

     End With

End Sub
capture userform excel pratique2

Bonjour Nonesofar13

je ne peux pas t'aider mais il y a surement un forumeur plus aguerri a ce genre de problème, j'ai le code pour une listview mais ce n'est pas la même et d'ailleurs il faut que je le retrouve pour le mettre en ligne

Hello,

Oui merci pour ton aide, j'ai un forumeur d3d9x pour ne pas le nommer qui m'a donné un coup de pouce bienvenue .

Code qui fonctionne.

Merci à lui et à toi.

Private Sub CommandButton1_Click()
Dim maPlage As Range, ligneSupprimer As Range
Set maPlage = Range(lst_WB.RowSource)

Dim i As Integer
With lst_WB
 For i = .ListCount - 1 To 0 Step -1
     If lst_WB.Selected(i) Then
       Set ligneSupprimer = maPlage.Rows(i + 1)
       ligneSupprimer.ClearContents
     End If
 Next i
 End With
 End Sub

Bonne journée.

bonjour nonesofer13

je viens de tester le code il est bien mais il laisse l'espace vide et efface la ligne sur la feuille c'est pas bon car lors du redémarrage de l'userform les espaces sont conservé, si tu comprends ce que je veux dire

Oui en fait c'est juste une fonctionnalité pour supprimer une erreur de saisie de l'utilisateur.

A la base j'avais pensé à supprimer la ligne mais ça me foire ma plage de donnée si tu comprends ce que je veux dire

Donc vais en rester la, vu que ça fonctionne pas mal . A voir si tu as une idée pour faire mieux ??

Le code qui supprime la ligne mais foire la row source sur ma feuille Data.

       Set ligneSupprimer = maPlage.Rows(i + 1)
       ligneSupprimer.Delete Shift:=xlUp

bonjour Nonesofar13

j'ai trouvé un code de suppression d'une ligne dans un listbox mais en sélectionnant la ligne a l'aide d'un bouton

Private Commandbutton1_Click()
Me.ListBox1.ListIndex = Delete
End Sub

Hello grisan29,

Merci de ton aide

J'ai pas le fichier sous la main, mais je vais le tester des lundi.

Bonne journée.

bonjour nonesofar13

je viens d'essayer le dernier code sur ton fichier et ce n'est pas extra, ca supprime d'office le 1 item

je t'ai mis une réponse sur l'autre forum

Rechercher des sujets similaires à "userform supprimer ligne precise liste box"