Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je souhaite pouvoir supprimer des lignes de ma feuille excel (et de la ListBox) avec une Listbox
J'ai récupéré un code mais cela fonctionne assez mal .
je vous remercie par avance pour votre aide.
Re : suppression d'une ligne de feuille excel a partir d'une ListBox
Bonjour ciree,
Dans le code que tu as "récupéré", l'instruction suivante
Code:
d = .Column(0, .ListIndex)
récupère dans la ListBox et pour l'élément sélectionné (à condition qu'il y en ait un!!) le contenu de la première colonne de ta ListBox.
Or, dans l'exemple que tu as déposé, il y a un '1' dans la première colonne pour chaque ligne! Quand tu fais ton Find, un peu plus bas, Excel repère le premier '1' dans la colonne A de la feuille "Sérothèque" et supprime cette ligne-là ... ça ne risque effectivement pas de faire ton bonheur!!
Je ne sais pas non plus ce que fait la boucle For x = 2 To 3😕
Par contre, comme tu garnis ta ListBox avec le contenu des cellules de la feuille en un "bloc", le ListIndex peut servir de point de repère pour déterminer quelle ligne il faut supprimer, dans la feuille (ce sera ListIndex + 2)
Essaye avec
VB:
Private Sub Suppression_Click()
Dim d
Dim r As Range
Dim x As Byte
With Me.ListBox1
d = .ListIndex
If Not d = -1 Then 'on vérifie qu'un élément est bien sélectionné!
Sheets("Sérothèque").Rows(d + 2).Delete
.RemoveItem ListBox1.ListIndex
End If
End With
End Sub
Dans le code que tu as "récupéré", l'instruction suivante
Code:
d = .Column(0, .ListIndex)
récupère dans la ListBox et pour l'élément sélectionné (à condition qu'il y en ait un!!) le contenu de la première colonne de ta ListBox.
Or, dans l'exemple que tu as déposé, il y a un '1' dans la première colonne pour chaque ligne! Quand tu fais ton Find, un peu plus bas, Excel repère le premier '1' dans la colonne A de la feuille "Sérothèque" et supprime cette ligne-là ... ça ne risque effectivement pas de faire ton bonheur!!
Je ne sais pas non plus ce que fait la boucle For x = 2 To 3😕
Par contre, comme tu garnis ta ListBox avec le contenu des cellules de la feuille en un "bloc", le ListIndex peut servir de point de repère pour déterminer quelle ligne il faut supprimer, dans la feuille (ce sera ListIndex + 2)
Essaye avec
VB:
Private Sub Suppression_Click()
Dim d
Dim r As Range
Dim x As Byte
With Me.ListBox1
d = .ListIndex
If Not d = -1 Then 'on vérifie qu'un élément est bien sélectionné!
Sheets("Sérothèque").Rows(d + 2).Delete
.RemoveItem ListBox1.ListIndex
End If
End With
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.