Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb lors d'une suppression

2 réponses
Avatar
DAVID
Bonjour

Avec le code ci dessous, cela me permet de supprimer une fiche.

Ca fonctionne très bien sauf dans un cas. Lors de la suppression de la
dernière ligne.

Avez vous une idée ?

Merci de votre aide

Cordialement
David


Private Sub CmdSupprimer_Click()

'Boite Confirmation
Dim réponse
réponse = MsgBox(" Etes vous sur de vouloir SUPPRIMER cette fiche ? ",
vbYesNo + vbQuestion, "Validation")
If réponse = vbNo Then Exit Sub

'Récupérer Index
ndx = LstListeVehicule.ListIndex

With Sheets("BD")
.Cells(ndx + 2, 1).Delete '1 est la colonne
.Cells(ndx + 2, 2).Delete
.Cells(ndx + 2, 3).Delete
.Cells(ndx + 2, 4).Delete
.Cells(ndx + 2, 5).Delete
.Cells(ndx + 2, 6).Delete
.Cells(ndx + 2, 7).Delete
.Cells(ndx + 2, 8).Delete
.Cells(ndx + 2, 9).Delete
End With
'recalculer la liste
'Liste_Modes_Paiement
UserForm_Initialize
End Sub

2 réponses

Avatar
michdenis
Bonjour,

Dans un contrôle "listbox" la première donnée
débute avec un index de 0. Dans une feuille de
calcul la première ligne débute à 1.
Le premier item ndx + 2 devrait plutôt être ndx + 1
Pour que le premier item du listbox corresponde à
l'item de la première ligne dans la plage de cellules.




"DAVID" a écrit dans le message de groupe de discussion :

Bonjour

Avec le code ci dessous, cela me permet de supprimer une fiche.

Ca fonctionne très bien sauf dans un cas. Lors de la suppression de la
dernière ligne.

Avez vous une idée ?

Merci de votre aide

Cordialement
David


Private Sub CmdSupprimer_Click()

'Boite Confirmation
Dim réponse
réponse = MsgBox(" Etes vous sur de vouloir SUPPRIMER cette fiche ? ",
vbYesNo + vbQuestion, "Validation")
If réponse = vbNo Then Exit Sub

'Récupérer Index
ndx = LstListeVehicule.ListIndex

With Sheets("BD")
.Cells(ndx + 2, 1).Delete '1 est la colonne
.Cells(ndx + 2, 2).Delete
.Cells(ndx + 2, 3).Delete
.Cells(ndx + 2, 4).Delete
.Cells(ndx + 2, 5).Delete
.Cells(ndx + 2, 6).Delete
.Cells(ndx + 2, 7).Delete
.Cells(ndx + 2, 8).Delete
.Cells(ndx + 2, 9).Delete
End With
'recalculer la liste
'Liste_Modes_Paiement
UserForm_Initialize
End Sub
Avatar
DAVID
Bonjour

Cela supprime la ligne au dessus car ma base dans la feuille est :

Ligne 1 : Entête
Ligne 2 à ...... : Données

Merci de ton aide

Cordialement