Supprimer ligne Objet tableau en fonction d'une textbox

barbin

XLDnaute Junior
Re-bonsoir à tous.

Je souhaiterai pouvoir supprimer une ligne d'un objet tableau (et non pas la ligne entière) en fonction de la valeur d'une TextBox.

J'ai écris ce code, cependant la suppression ne se fait pas et je n'ai aucune erreur.

Private Sub CommandButton2_Click()

If TextBox1.value = "" Then
MsgBox ("Veuillez saisir un numéro de compte.")
Exit Sub
End If

With Sheets("Pcg")
r = MsgBox("confirmez-vous la suppression ?", vbYesNo, "Gestion des comptes")
If r <> 6 Then Exit Sub

For i = 2 To Range("B:B").End(xlDown).Row
If Me.TextBox1.Value = .Cells(i, 2) Then

.ListObjects("Plan_Comptable").ListRows(i).Delete
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
End If
Next i
Unload Me
USFPcg.show
End With
End Sub

Si vous pouvez trouver mon erreur ce serait sympa.
Cordialement.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je suppose que c'est parce qu'il n'existe aucune cellule contenant un texte à l'image de la valeur de la TexBox1.
Essayez peut être en la convertissant en nombre avec CDbl(TextBox1.Text)

Remarque: l'instruction .ListObjects("Plan_Comptable").ListRows(i).Delete est correcte.
La structure de la boucle moins: il vaudrait mieux commencer par la fin s'il peut y avoir plusieurs lignes à supprimer.
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Pour suppimer la 2e ligne d'un tableau nommé Tableau1

[Tableau1].Rows(2).Delete ' Suppression ligne

ou

Sheets("bd").ListObjects(1).DataBodyRange.Rows(2).Delete ' Suppression ligne 2

http://boisgontierjacques.free.fr/pages_site/formulaireListes2colonnes.htm#ListObject

Extrait d'un programme: http://boisgontierjacques.free.fr/fichiers/Formulaire/FiltreListboxListObject.xls

Code:
Private Sub B_sup_Click()
If Me.Enreg <> "" Then
  If MsgBox("Etes vous sûr de supprimer " & Me.TextBox1 & "?", vbYesNo) = vbYes Then
    [Tableau1].Rows(Me.Enreg).Delete
  End If
End If
End Sub

JB
 
Dernière édition:

barbin

XLDnaute Junior
Merci vous deux.
J'ai modifier le code comme ceci et ça fonctionne super bien :

Private Sub CommandButton2_Click()

If TextBox1.Value = "" Then
MsgBox ("Veuillez saisir un numéro de compte.")
Exit Sub
End If

With Sheets("Pcg")
r = MsgBox("confirmez-vous la suppression ?", vbYesNo, "Gestion des comptes")
If r <> 6 Then Exit Sub

For i = 2 To Range("B:B").End(xlDown).Row
If Me.TextBox1.Text = .Cells(i, 2) Then
.ListObjects("Plan_Comptable").DataBodyRange.Rows(i - 1).Delete
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
End If
Next i
Unload Me
USFPcg.show

End With
End Sub
 

Statistiques des forums

Discussions
298 027
Messages
1 965 281
Membres
200 894
dernier inscrit
Sneaks