Faire supprimer des lignes par une macro

  • Initiateur de la discussion Initiateur de la discussion DamDamDeo40
  • 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 !

D

DamDamDeo40

Guest
Bonjour à tous,

Voila, je reviens vers vous aujourd'hui pour un petit conseil.
Je m'en trouve face à un problème avec ma feuille de gestion des projets plan.

Je souhaiterai créer une macro qui aurai pour but de supprimer des lignes qui concernent un projet plan.

Aujourd'hui, j'ai une macro qui ajoute des ligne et les mets en forme.

je vous joint un fichier en pièce jointe.

Cordialement
 

Pièces jointes

Re : Faire supprimer des lignes par une macro

alors, par exemple, je créer un projet avec la macro, ensuite au cours des utilisations, je souhait le supprimer car il a été valider.

1) Je souhaiterai sélectionner le projet exemple celui du client "XXX" est donc supprimer les lignes de ce projet donc toutes celles comprise dans le cadre noir.

2) Es ce que je pourrais lors de la création du projet avec la macro "Ajouter un projet", insérer une case à cocher dans la ligne fusionner grise ?
 
Re : Faire supprimer des lignes par une macro

Bonjour,
Ceci basé sur la cellule sélectionnée supprime les 5 lignes suivantes à partir de la sélection.
Macro à attribuer au bouton "Suppr. un projet"
'-----------
Sub SupprimerProjet()
If MsgBox("Confirmez la suppression du projet """ & ActiveCell.Value & """ ", 292, "Confirmation") = 6 Then
Range(ActiveCell.Row & ":" & ActiveCell.Row + 5).Rows.Delete
End If
End Sub
'-------------
Aucun contrôle n'est effectué, seule la confirmation est demandé.
Salutations
JJ
 
Re : Faire supprimer des lignes par une macro

Re

Bien, comme ceci ça marche.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A2:A65000")) Is Nothing Then
Application.ScreenUpdating = False
Range(ActiveCell.Row & ":" & ActiveCell.Row + 5).Rows.Delete
End If
End Sub
 
Re : Faire supprimer des lignes par une macro

Bonsoir Lone-wolf et merci


Sans doute une histoire de cellule fusionnée
Ceci fonctionne chez moi par un double clic
'------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If MsgBox("Confirmez la suppression du projet """ & Target(1).Value & """ ", 292, "Confirmation") = 6 Then
Range(Target.Row & ":" & Target.Row + 5).Rows.Delete
End If
End Sub
'----------------
Mais, je ne suis pas certain que ni ce code , ni ma proposition précédente soient la bonne manière d'aborder ce genre de projet.

Salutations.
JJ
 
Re : Faire supprimer des lignes par une macro

Re Jacky

Non, je pense que ça venait de faite de ne pas avor mit if not intersect. Si il garde les 5 lignes, pas de soucis; mais si chaque tableau comporte un nombre de lignes différent, bienentendu que c'est cuit. A moins que dans une cellule il met le nombre de lignes à supprimer et au lieu de mettre 5, mettre (lignes / variable) lignes = Range("i2").

@DamDamDeo: va falloir modifier le code de mise en forme. J'ai supprimé les lignes inutiles, mais il y a aussi tout ces select qui font tourner trop longtemps la macro. Il faut peut-être ajouter 2 lignes pour chaque sélection pour que tu te retrouve avec un tableau complet sur la deuxième feuille.
 

Pièces jointes

Dernière édition:
Re : Faire supprimer des lignes par une macro

Merci cela fonctionne bien !

Maintenant dans l'optique de pouvoir rajouter des lignes au projet, donc plus de 5 lignes, pourrait on supprimer des lignes entre deux cellules grises ?
 
Re : Faire supprimer des lignes par une macro

Merci cela fonctionne bien avec ta solution Jacky !

Maintenant dans l'optique de pouvoir rajouter des lignes au projet, donc plus de 5 lignes, pourrait on supprimer des lignes entre deux cellules grises ?
 
Re : Faire supprimer des lignes par une macro

Bonjour à toutes et à tous,

Une autre suggestion avec le code suivant :

Code:
Option Explicit
Sub Projet_supprimer()
    If Not Selection.Offset(1, 0).Value Like "Note*" Then
        MsgBox "Pour supprimer un projet, sélectionner une cellule contenant le nom d'un client (colonne a).", vbInformation, "Attention..."    '
    Else
        Selection.Resize(6).EntireRow.Delete Shift:=xlUp
    End If
End Sub

A bientôt 🙂
 
Re : Faire supprimer des lignes par une macro

Re..

>..., pourrait on supprimer des lignes entre deux cellules grises ?
En combinant avec le code de DoubleZero.
'---------------
Sub SupprimerProjet()
Dim x As Long
On Error GoTo fin
If Not Selection.Offset(1, 0).Value Like "Note*" Then
MsgBox "Pour supprimer un projet, sélectionner une cellule contenant le nom d'un client (colonne a).", 64, "Attention..." '
Else
x = ActiveCell.Row
Do
x = x + 1
Loop Until Cells(x, 1).Interior.Color = 14211288
x = x - ActiveCell.Row + 1
If MsgBox("Confirmez la suppression du projet """ & ActiveCell.Value & """ ", 292, "Confirmation") = 6 Then
ActiveCell.Resize(x).EntireRow.Delete
End If
End If
Exit Sub
fin:
MsgBox "Selection non valide.", 64, "Information"
End Sub
'---------------
Salutations.
JJ
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
143
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
243
Retour