Supprimer les lignes contenant un mot en particulier

Bonjour,

J'ai une liste de codification (onglet "EXTRACTION") que je dois trier en trois onglets :

1) STANDARD

L' onglet "STANDARD" doit correspondre à l'onglet "EXTRACTION" sans les lignes avec les sigles "MPCA" et "MCA".

2) MPCA

L' onglet "MPCA" doit correspondre à l'onglet "EXTRACTION" avec les lignes le sigle "MPCA".

3) MCA

L' onglet "MCA" doit correspondre à l'onglet "EXTRACTION" avec les lignes le sigle "MCA".

J'aimerais donc trouver une solution pour supprimer les lignes automatiquement selon le mot/sigle que je souhaite.

Je crois que c'est possible en VBA, Mais je débute tout juste sur ce langage.

Dans l'attente de vos réponses.

BONUS : Lorsqu'il y a une modification des codifications, je souhaiterais que je puisse changer uniquement le premier onglet ("EXTRACTION) et que cela se change sur les autres onglets de "tri".

44gtp-forum.xlsx (51.99 Ko)

Bonjour,

Code à mettre dans un module standard. Le code utilise le filtrage avancé pour la récup des différentes valeurs, voir les commentaires dans le code pour plus de compréhension :

Sub Test()

    Dim Plage As Range
    Dim ZoneCritere As Range

    With Worksheets("EXTRACTION")

        'paramètre la feuille
        With .Range("A1")

            'défusionne
            .UnMerge

            'insère 3 lignes
            .EntireRow.Insert
            .EntireRow.Insert
            .EntireRow.Insert

        End With

        'fusionne à nouveau
        .Range("A4:C5").Merge

        'récup de l'entête de colonne dans les deux cellules (les deux, pour la récup des valeurs "standards)
        .Range("A1:B1").Value = .Range("B12").Value

        'défini les plages
        Set Plage = DefPlage(Worksheets("EXTRACTION"), 12)
        Set ZoneCritere = .Range("A1:C2")

        'premier critère
        ZoneCritere(2, 1).Value = "*MCA*"

        'filtrage et copie dans la feuille correspondante
        Plage.AdvancedFilter xlFilterInPlace, ZoneCritere
        Plage.Cells.SpecialCells(xlCellTypeVisible).EntireRow.Copy Worksheets("MCA").Range("A1")

        .ShowAllData

        'Second critère
        ZoneCritere(2, 1).Value = "*MPCA*"

        'filtrage et copie dans la feuille correspondante
        Plage.AdvancedFilter xlFilterInPlace, ZoneCritere
        Plage.Cells.SpecialCells(xlCellTypeVisible).EntireRow.Copy Worksheets("MPCA").Range("A1")

        .ShowAllData

        'troisième critère afin de récupérer les autres valeurs (standard)
         ZoneCritere(2, 1).Value = "<>*MPCA*"
         ZoneCritere(2, 2).Value = "<>*MCA*"

        Plage.AdvancedFilter xlFilterInPlace, ZoneCritere
        Plage.Cells.SpecialCells(xlCellTypeVisible).EntireRow.Copy Worksheets("STANDARD").Range("A1")

        .ShowAllData

        'suppression des lignes ayant servies à la zone de critères
        .Rows("1:3").Delete

    End With

End Sub

Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range

    On Error GoTo Fin

    With Fe

        Set DefPlage = .Range(.Cells(L, C), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function

Bonjour,

Salut Theze

Une variante, avec Filtre Avancé également. La macro est exécutée quand la feuille Standard est activée (tu verras si tu as besoin d'aide pour reproduire dans les deux autres feuilles).

bonjour

salut U. Milité, Theze,

ma suggestion : pas de VBA

mais une requête pour afficher en clair MCA etc. (tu sais faire ? )

et ensuite un simple TCD (ou 3 TCD avec des filtres figés si tu veux)

amitiés à tous

Bonjour,

Une autre proposition avec Récupérer et transformer (Power Query).

3 tableaux comme souhaité. Le TCD n'étant pas demandé.

Pour actualiser les données lors de modifications dans le tableau Extraction : Ruban, Données, Actualiser tout.

Le procédé est identique au filtres sous Excel (sans ajout de colonnes !... ).

A te relire.

Cdlt.

17gtp-forum.xlsx (68.29 Ko)

Bonjour à tous,

Je vous remercie tous pour toutes vos réponses rapides.

J'ai essayé un peu toutes vos réponses. Celle qui correspondrait le mieux à la demande de mon responsable est celle de Theze.

J'ai un peu adapé le code et j'ai ajouté des boutons pour simplifier l'utilisation par mes collègues.

Il m'est demandé maintenant d'ajouter une "barre de recherche" où il serait possible de taper un mot, ou même juste quelques lettres, et que cela me sorte la liste des résultats en dessous.

Pb : Je ne vois pas du tout comment faire.

Avez-vous des idées à me suggérer ?

Dans l'attente de vos réponses. Bonne journée.

22gtp-v2.xlsm (87.39 Ko)
Rechercher des sujets similaires à "supprimer lignes contenant mot particulier"