Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
suppression d'une ligne de feuille excel a partir d'une ListBox
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
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.