Faire supprimer des lignes par une macro

DamDamDeo40

XLDnaute Nouveau
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
 

Fichiers joints

Lone-wolf

XLDnaute Barbatruc
Re : Faire supprimer des lignes par une macro

Bonjour DamDamDeo

ça manque d'explications. Quelles lignes faut-il supprimer et sous quelle condition?
 

DamDamDeo40

XLDnaute Nouveau
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 ?
 

Jacky67

XLDnaute Accro
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
 

Lone-wolf

XLDnaute Barbatruc
Re : Faire supprimer des lignes par une macro

Bonsoir Jacky et bienvenue sur XLD :)

J'ai essaié d'en faire de même sur l'évenement double-clic de la feuille mais sans succès.
 

Lone-wolf

XLDnaute Barbatruc
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
 

Jacky67

XLDnaute Accro
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
 

Lone-wolf

XLDnaute Barbatruc
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.
 

Fichiers joints

Dernière édition:

DamDamDeo40

XLDnaute Nouveau
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 ?
 

DamDamDeo40

XLDnaute Nouveau
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 ?
 

DoubleZero

XLDnaute Barbatruc
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 :)
 

Jacky67

XLDnaute Accro
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 édition par un modérateur:

Lone-wolf

XLDnaute Barbatruc
Re : Faire supprimer des lignes par une macro

Bonjour à toutes et a tous :)

@DamDamDeo: en PJ et en exemple, la macro de mise en forme. J'ai préparé le classeur avec mise en page.
 

Fichiers joints

Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Faire supprimer des lignes par une macro

Bonjour à toutes et à tous :)

Un autre en PJ ;)

Pour l'utilisation: choisissez un nom dans la liste, double-cliquez pour commencer en A6 puis, pour chaque nom, double-cliquez à chaque fois en dessous de la cellule moins large du tableau, toujours en colonne A. Pour supprimer un tableau, sélectionnez un client, puis cliquez sur le bouton "Supprimer".

Merci à DoubleZero pour son code. :D
 

Fichiers joints

Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Faire supprimer des lignes par une macro

Bonjour JJ
Le fichier chez moi bloque lors du double-clic; de même lors du clic sur le bouton.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas