Suppression Ligne select ListView

Bruce68

XLDnaute Impliqué
Bonsoir à tous
Je sélectionne 1 ligne dans une listView par 1 clic ( 2 clics appel un UserForm)
pour la supprimer dans ma base de données à l'aide de la macro ci dessous.Pour ne pas supprimer n'importe comment j'ai mis le If, mais le probleme c'est que je ne peux supprimer la premiere ligne qui est la N°2
Comment Faire ?

Private Sub CommandButton4M_Click() ' Supprimer 1 Enregistrement
Dim SuppLigne As Long
With UserForm2.ListView1
SuppLigne = Mid(.ListItems(.SelectedItem.Index).ListSubItems(1).Key, 2) '(1) N°colonne ;1° colonne = 0 Feuille Factures
End With
If SuppLigne = 2 Then Exit Sub
With Worksheets("Donnees")
.Rows(SuppLigne).Delete Shift:=xlUp
End With
Unload Me
Unload UserForm2
Call UserForm2.Show
End Sub

Je vous remercie de votre aide
 
Dernière édition:

Bruce68

XLDnaute Impliqué
Re : Suppression Ligne select ListView

Bonjour à tous

merci roro69 pour ta réponse, je peux supprimer la 1° ligne de ma base de données mais cela engendre une autre erreur si je clic sur SUPP quand la base est vide :

(If SuppLigne = 1 Then Exit Sub ce que j'ai mis à la place de:If SuppLigne = 2 Then Exit Sub)

Errreur d'execution 91
Variable objet ou variable de bloc With non définie.

Maintenant je voudrais pouvoir supprimer ce message.

Je vous remercie de votre aide
 

youky(BJ)

XLDnaute Barbatruc
Re : Suppression Ligne select ListView

Bruce bonjour,
Essayes comme ceci...
Code:
Private Sub CommandButton4M_Click() 'VISUALISATION  Supprimer
Dim SuppLigne As Long
SuppLigne = UserForm2.ListView1.SelectedItem.Index + 1
With UserForm2.ListView1
.ListItems.Remove .SelectedItem.Index
Worksheets("Donnees").Rows(SuppLigne).Delete Shift:=xlUp
End With
End Sub
A+
Bruno
 

Bruce68

XLDnaute Impliqué
Re : Suppression Ligne select ListView

Bonsoir à tous

Merci youky(BJ) pour la solution
Le message est identique au dernier post quand je clic sur SUPP et que ma base est vide.
J'ai pensé à mettre GoTo erreur mais je ne sais pas comment l'ecrire dans la macro, comme la ListView est à 0 c'est cela qui provoque l'erreur.

Merci pour votree aide
 

youky(BJ)

XLDnaute Barbatruc
Re : Suppression Ligne select ListView

Voici avec gestion d'error...
Code:
Private Sub CommandButton4M_Click() 'VISUALISATION  Supprim
Dim SuppLigne As Long
On Error GoTo fin
SuppLigne = UserForm2.ListView1.SelectedItem.Index + 1
With UserForm2.ListView1
.ListItems.Remove .SelectedItem.Index
Worksheets("Donnees").Rows(SuppLigne).Delete Shift:=xlUp
End With
fin:
End Sub

A+
Bruno
 

saida samhani

XLDnaute Nouveau
Bonjour à tous
je suis novice dans le forum et dans les macros j'ai essayé d'adapter le code de Bruce68 à mon fichier mais ça fonctionne pas, c'est toujours la première ligne de ma base qui se supprime et non pas celle sélectionnée dans listview
un autre problème quand je supprime les dernières lignes de ma base l'erreur d’exécution 13 apparait
je vous remercie d'avance

voici mon fichier
 

Pièces jointes

  • chutes 27-02-2020.xlsm
    201.1 KB · Affichages: 20

youky(BJ)

XLDnaute Barbatruc
Bonjour,
Essayer comme ceci.
J'ai inversé 2 lignes
Bruno
VB:
Private Sub Command_supprimer_Click()
Dim SuppLigne As Long
On Error GoTo fin
SuppLigne = modification.ListView1.SelectedItem.Index + 1
With modification.ListView1
Worksheets("Base").Rows(SuppLigne).Delete Shift:=xlUp
.ListItems.Remove .SelectedItem.Index
End With
fin:
End Sub
 

saida samhani

XLDnaute Nouveau
Bonjour youky
Merci de m'avoir répondu
le problème persiste toujours, quand je sélectionne par exemple le client9 à partir du textBox1 et je le supprime il se supprime de ma ListView et non pas de ma base et c'est la ligne du client1 qui se supprime (la première ligne)
 

youky(BJ)

XLDnaute Barbatruc
Ok,
J'avais pas tout vu.
Dans la macro je supprime l'espace "client9 " après 9 ou les autres chiffres
J'ai pas cherché le pourquoi
Autre bug après avoir effacé client9 j'avais un bug en user_initialize
J'ai mis On error resume next ca passe mais j'ai pas le temps de chercher
VB:
Private Sub Command_supprimer_Click()
Dim SuppLigne As Long
On Error GoTo fin
If TextBox2 = "" Then Exit Sub
tx = RTrim(TextBox2)
SuppLigne = Application.Match(tx, Sheets("Base").[A:A], 0)
'SuppLigne = modification.ListView1.SelectedItem.Index + 1
With modification.ListView1
.ListItems.Remove .SelectedItem.Index
Worksheets("Base").Rows(SuppLigne).Delete
End With
fin:
End Sub
Bruno
 

Statistiques des forums

Discussions
314 034
Messages
2 104 859
Membres
109 196
dernier inscrit
cedric380