Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimmer une plage qui se trouve entre 2 lignes comportant une cellule avec texte

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

S

StormRider

Guest
Bonjour,

Je souhaite trouver un code pour supprimer toutes les lignes qui se trouvent entre deux cellules repérée par un "X".

Il faudrait un code pour dire : "supprimer la plage s'étendant de la première cellule contenant un "X" à la cellule suivante contenant un "X".

P.S1 : il est important de cibler la cellule suivante et non la dernière cellule contenant un "X", car plusieurs plage de même type vont se suivre et il faut pouvoir les supprimer distinctement...

Merci pour votre aide, n'hésitez pas si vous avez besoin de plus de précisions 🙂
 

Pièces jointes

Re : Supprimmer une plage qui se trouve entre 2 lignes comportant une cellule avec te

Bonsoir,

Affecte la macro suivante au bouton "supprimer" de la feuille "Donnée_vierge" ainsi qu'au bouton "supprimer"Progr°_opération" déjà créé de la feuille.

VB:
Sub Supprimer_Plage()
    Dim c As Range, c2 As Range
    Dim sh As Shape
    On Error GoTo err_Handler
    With ActiveSheet
    Set c = .Cells(.Shapes(Application.Caller).TopLeftCell.Row - 2, 1)
    If Not c Is Nothing Then
        Set c2 = .Range("A:A").Find(what:=c, After:=c, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
        If Not c2 Is Nothing Then
            For Each sh In .Shapes
                'Supprime les anciens boutons
                If sh.TopLeftCell.Row >= c.Row And sh.TopLeftCell.Row <= c2 Then sh.Delete
            Next
            .Range(c, c2).EntireRow.Delete
        End If
    End If
    End With
err_Handler:
End Sub

A+
 
Re : Supprimmer une plage qui se trouve entre 2 lignes comportant une cellule avec te

salut Hasco,

merci pour la réponse rapide et astucieuse 😎. Le code marche nickel pour la suppression de la plage : on supprime bien les lignes qu'il y a entre la première et seconde croix.

mais pour la suppression des boutons il y a un problème lorsque l'on supprime en premier la plage du haut : cette fois, on supprime les boutons se trouvant entre la première et dernière croix, ce que j'ai du mal à expliquer.

As-tu l'explication de ton côté ?
 

Pièces jointes

Re : Supprimmer une plage qui se trouve entre 2 lignes comportant une cellule avec te

bonsoir,

Il manquait un .Row (c2.Row) dans
Code:
               If sh.TopLeftCell.Row >= c.Row And sh.TopLeftCell.Row <= c2.Row Then sh.Delete

A+
 
Re : Supprimmer une plage qui se trouve entre 2 lignes comportant une cellule avec te

Yes 🙂 !

Super, merci beaucoup Hasco !
Bonne journée, et à la prochaine

ToM
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…