XL 2019 suppression d'une ligne avec un bouton

Mimi1952

XLDnaute Occasionnel
Bonsoir à tous,

j'ai un petit fichier test et je voudrais pourvoir supprimer une ligne quelque soit sa position
c'est-à-dire aussi bien en début , milieu ou fin de tableau et cela avec un bouton peut-être en vba.
merci pour votre aide.

mic52
 

Pièces jointes

Solution
Si l'on ne veut pas écrire en dur le nom du tableau on peut utiliser :
VB:
Private Sub CommandButton1_Click()
With ListObjects(1) 'tableau structuré
    If Intersect(ActiveCell, Range(.Name)) Is Nothing Then Exit Sub
    If MsgBox("Etes-vous sûr de vouloir supprimer cette ligne ?", vbYesNo + vbQuestion) = vbYes _
        Then Intersect(ActiveCell.EntireRow, .Range).Delete xlUp
End With
End Sub
Bonjour Phil,
Merci pour votre aide , ça correspond vraiment à mon attente tout fonctionne très bien .
Mic 1952

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous :),

Je ne vois pas bien le bénéfice de ce bouton alors qu'avec un clique-droit/supprimer natif, on peut parfaitement le faire avec comme avantage :
  • la suppression peut être annulée si on s'aperçoit qu'on s'est trompé de ligne
  • on peut supprimer plusieurs lignes en une seule fois (disjointes ou groupées) avec la sélection d'une cellule quelconque de chaque ligne à supprimer
  • on n'a pas pas besoin de faire défiler la feuille pour retrouver le bouton si le tableau structuré s'étend au-delà de la zone affichée contenant le bouton (sauf pour Dranreb qui gère ce point)
Cependant le demandeur est roi.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour le forum,
VB:
Private Sub CommandButton1_Click()
If Intersect(ActiveCell, [T_BDD]) Is Nothing Then Exit Sub
If MsgBox("Etes-vous sûr de vouloir supprimer cette ligne ?", vbYesNo + vbQuestion) = vbYes _
    Then Intersect(ActiveCell.EntireRow, [T_BDD]).Delete xlUp
End Sub
A+
 

Pièces jointes

job75

XLDnaute Barbatruc
Si l'on ne veut pas écrire en dur le nom du tableau on peut utiliser :
VB:
Private Sub CommandButton1_Click()
With ListObjects(1) 'tableau structuré
    If Intersect(ActiveCell, Range(.Name)) Is Nothing Then Exit Sub
    If MsgBox("Etes-vous sûr de vouloir supprimer cette ligne ?", vbYesNo + vbQuestion) = vbYes _
        Then Intersect(ActiveCell.EntireRow, .Range).Delete xlUp
End With
End Sub
 

Pièces jointes

Mimi1952

XLDnaute Occasionnel
Si l'on ne veut pas écrire en dur le nom du tableau on peut utiliser :
VB:
Private Sub CommandButton1_Click()
With ListObjects(1) 'tableau structuré
    If Intersect(ActiveCell, Range(.Name)) Is Nothing Then Exit Sub
    If MsgBox("Etes-vous sûr de vouloir supprimer cette ligne ?", vbYesNo + vbQuestion) = vbYes _
        Then Intersect(ActiveCell.EntireRow, .Range).Delete xlUp
End With
End Sub
Bonjour Job 75
Merci , pour cette aide sa fonctionne très bien .C'est sympa de votre part.
Je vous souhaite de très bonnes fêtes de fin d'année.
Mic 1952
 

Mimi1952

XLDnaute Occasionnel
Si l'on ne veut pas écrire en dur le nom du tableau on peut utiliser :
VB:
Private Sub CommandButton1_Click()
With ListObjects(1) 'tableau structuré
    If Intersect(ActiveCell, Range(.Name)) Is Nothing Then Exit Sub
    If MsgBox("Etes-vous sûr de vouloir supprimer cette ligne ?", vbYesNo + vbQuestion) = vbYes _
        Then Intersect(ActiveCell.EntireRow, .Range).Delete xlUp
End With
End Sub
Bonjour Phil,
Merci pour votre aide , ça correspond vraiment à mon attente tout fonctionne très bien .
Mic 1952
 

Discussions similaires

Réponses
2
Affichages
342
Réponses
2
Affichages
207
Réponses
3
Affichages
281

Statistiques des forums

Discussions
315 294
Messages
2 118 144
Membres
113 436
dernier inscrit
LAROQUE