Comment Supprimer une ligne de la listbox et de la feuille excel?

tafus91 Messages postés 13 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 8 juin 2011 - 24 janv. 2011 à 17:05
tafus91 Messages postés 13 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 8 juin 2011 - 25 janv. 2011 à 15:34
Bonjour à tous,
je fait une petite application sous excel en VBA et depuis une semaine je bloque après de nombreuse recherche.
A savoir que je suis novice sous VBA


j'ai un bouton supprimmer (dans le formulaire ou il y a la listbox) avec lequel je voudrai pouvoir supprimmer la ligne sélectionné dans la listbox ainsi que dans ma feuille excel


J'ai rempli ma listbox avec ce code et je bloque avec le bouton supprimer:
'Liste
Private Sub UserForm_Initialize()
Set objClients = Application.ThisWorkbook.Worksheets.Item("Clients")
Dim lngPrcourligne As Long

Let lngPrcourligne = 2

Let ListBoxClients.ColumnCount = 7
Let ListBoxClients.ColumnWidths = "20;100;120;80;80;50;80"
Let ListBoxClients.Font.Size = 10


'remplissage de la liste
Do While objClients.Cells(lngPrcourligne, 1) <> ""
Me.ListBoxClients.AddItem
Me.ListBoxClients.List(lngPrcourligne - 2, 0) = objClients.Cells(lngPrcourligne, 1)
Me.ListBoxClients.List(lngPrcourligne - 2, 1) = objClients.Cells(lngPrcourligne, 4)
Me.ListBoxClients.List(lngPrcourligne - 2, 2) = objClients.Cells(lngPrcourligne, 5)
Me.ListBoxClients.List(lngPrcourligne - 2, 3) = objClients.Cells(lngPrcourligne, 7)
Me.ListBoxClients.List(lngPrcourligne - 2, 4) = objClients.Cells(lngPrcourligne, 8)
Me.ListBoxClients.List(lngPrcourligne - 2, 5) = objClients.Cells(lngPrcourligne, 11)
Me.ListBoxClients.List(lngPrcourligne - 2, 6) = objClients.Cells(lngPrcourligne, 12)
Let lngPrcourligne = lngPrcourligne + 1
Loop

End Sub


Si quelqu un peu me donner un coup de main ce serait super
merci d'avance

4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
25 janv. 2011 à 07:59
Bonjour,
Essaie ceci:

Private Sub CommandButton1_Click()
On Error Resume Next
Dim ligne As String
ligne = ListBox1.ListIndex 'on récupère le N° de ligne
'La valeur de la propriété ListIndex de la 1ère de la liste est zéro
'la valeur de la 2èmeliste est 1 etc...
 Feuil1.Cells(ligne + 1, 1).Delete
End Sub



@+ Le Pivert
0
tafus91 Messages postés 13 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 8 juin 2011
25 janv. 2011 à 11:59
Merci pour ta réponse ça marche nickel
j'ai rajouter
ListBoxClients.RemoveItem (ListBoxClients.ListIndex)
pour que sa supprime aussi dans la listbox
et maintenant une derniere question

Quand il n'y a pas de ligne sélectionné et que j'appui sur le bouton supprimmer sa me supprimme la premiere ligne de la listbox

Ne pourait'on pas utiliser SelectLigne pour dire de supprimmer seulement quand une ligne est selectionner et de ne rien faire quand aucune ligne n'est sélectionné?

En tout cas merci Beaucoup de ta réponse, sa fait du bien d'avancer après une semaine à ce prendre la tête.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
25 janv. 2011 à 14:05
Tu n'as pas besoin de rajouter:

ListBoxClients.RemoveItem (ListBoxClients.ListIndex)


car à partir du moment que la cellule est effacé cela le retransmait à ta lisBox.
Je ne comprends pas que cela efface la 1ère ligne quand tu cliques et que rien n'est sélectionné. Cela doit provenir du système de remplissage de ta listBox.
Essaie dans un autre classeur en remplissant ta listBox avec cette propriété
RowSource Feuil1!A1:A10
tu verras que la 1ère ligne ne sera pas supprimé
@+Le Pivert
0
tafus91 Messages postés 13 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 8 juin 2011
25 janv. 2011 à 15:34
Ba je viens d'essayer et il me semble que ça le fait aussi mais t'embète pas je vais essayer de trouver une solution comme un grand,
ça ma déja bien aider de me dire comment supprimer une ligne entière

Bonne journée a toi
0
Rejoignez-nous