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

Suprimmer les lignes qui contiennent..

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

Guido

XLDnaute Accro
Bonjour le Forum

Je reviens a nouveau pour une macro..

Dans cette feuille excel la colonnes B a des cellules comprenant des chiffres...

1 2 3 4 ou 5 .

J'aimerais gardé seulement les lignes qui ont le meme chiffres qui se trouve dans la cellule K1

Le contenu de la cellule K1 c'est moi qui le change selon que,,,

Merci pour votre aide

Voir le petit fichier

Merci

Guido
 

Pièces jointes

Re : Suprimmer les lignes qui contiennent..

Bonjour

S'il s'agit seulement de ne garder à l'affichage que les lignes comportant le N° choisi en cellule K1, le filtre automatique est tout indiqué.

S'il s'agit de supprimer définitivement les lignes, je réfléchis à une macro évènementielle (à la modif de K1) dès confirmation.

A+
 
Re : Suprimmer les lignes qui contiennent..

Re,

Dans cette feuille excel la colonnes B a des cellules comprenant des chiffres...
1 2 3 4 ou 5 .
la colonne B ne contient pas que ces valeurs !

Dans le code de la feuille COURSE JOUABLES

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$1" Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Worksheets("COURSE JOUABLES")
    Comp = .Range("K1")
    DerLig = .Range("B" & Rows.Count).End(xlUp).Row
    For i = DerLig To 2 Step -1
        If .Cells(i, 2) <> Comp Then ' si colonne B de la ligne en cours <> K1
            .Rows(i).Delete
            x = x + 1
        End If
    Next
    End With
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox x & "  lignes supprimée"
End Sub

version un peu lente, je regarde en passant par des tableaux

A+
 
Re : Suprimmer les lignes qui contiennent..

Bonjour à tous ,

Une autre solution pourrait être de trier par la colonne num
de rechercher par le haut la premiere occurence du nombre désiré dans num
de rechercher par le bas la derniere occurence du nombre désiré dans num

là 2 options soit l'on copie la zone premiere derniere occurence vers autre feuille
soit l'on delete derniere occurence + 1 derniere ligne
puis delete de 1ere ligne premiere occurence -1
 
Re : Suprimmer les lignes qui contiennent..

Bonjour tout le monde,

Si l'objectif est de copier les données dans une autre feuille, pourquoi pas un filtre avancé 😕
Avec le n° de réunion en L2 et le titre "Reunion" en L1
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$L$2" Then Exit Sub
If Target = "" Then Exit Sub
[A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, criteriarange:=[L1:L2], copytorange:=Sheets("Feuil1").[A1]
End Sub
 
Re : Suprimmer les lignes qui contiennent..



Dans cette feuille excel la colonnes B a des cellules comprenant des chiffres...


1 2 3 4 ou 5 .

la colonne B ne contient pas que ces valeurs !

mais dans 95% pour cent des cas oui..

A plus

Guido
 
Re : Suprimmer les lignes qui contiennent..

Re

Une erreur s'inscrit..

Sub Macro1()
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$1" Then
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("COURSE JOUABLES")
Comp = .Range("K1")
DerLig = .Range("B" & Rows.Count).End(xlUp).Row
For i = DerLig To 2 Step -1
If .Cells(i, 2) <> Comp Then ' si colonne B de la ligne en cours <> K1
.Rows(i).Delete
x = x + 1
End If
Next
End With
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox x & " lignes supprimée"
End Sub


macros est en couleur JAUNE...

Merci
 
Re : Suprimmer les lignes qui contiennent..

Bonjour, le Fil 😀, le Forum,

Un autre essai avec ce code :

Code:
Option Explicit
Sub Ligne_supprimer_si_valeur_différente()
    [b1].AutoFilter
    ActiveSheet.Range("a:j").AutoFilter Field:=2, Criteria1:="<>" & [k1]
    Rows("2:" & Rows.Count).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    [b1].AutoFilter
End Sub

A bientôt 🙂
 
Re : Suprimmer les lignes qui contiennent..

Bonsoir le fil, bonsoir le forum,

En pièce jointe ton fichier modifié avec la macro événementielle Change ci-dessous :

Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim PLV As Range 'déclare la variable PLV (PLage Visible)

If Target.Address <> "$K$1" Then Exit Sub 'si le changement a lieu ailleurs que dans la celllue K1, sort de la procédure
DL = Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 2 (=B)
Set PL = Range("B2:B" & DL) 'définit la plage PL
Range("A1").AutoFilter Field:=2, Criteria1:="<>" & Target.Value 'filtre la colonne B avec "<> K1" comme critères
Set PLV = PL.SpecialCells(xlCellTypeVisible) 'définit la plage PLV des cellules visibles de la plage PL (non filtrées)
PLV.EntireRow.Delete 'supprimes les lignes de la plage PLV
Range("A1").AutoFilter 'supprime le filtre automatique
End Sub
Le fichier :
 

Pièces jointes

- 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
30
Affichages
858
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…