Supprimer ligne Objet tableau en fonction d'une textbox

  • Initiateur de la discussion Initiateur de la discussion barbin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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:
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
282
Réponses
5
Affichages
243
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Retour