Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment supprimer des lignes en fonction de la valeur de la cellule dans Excel?

Pour supprimer ou supprimer rapidement plusieurs lignes en fonction de la valeur de la cellule dans Excel, vous devrez peut-être sélectionner d'abord ces lignes entières contenant une valeur de cellule spécifique, puis aller les supprimer. Il semble qu'il n'y ait pas de moyen rapide de supprimer des lignes en fonction de la valeur de la cellule, mais en utilisant le code VBA. Voici quelques astuces rapides pour vous aider.


Supprimer des lignes en fonction de la valeur de la cellule avec la fonction Rechercher et remplacer

Dans Excel, vous pouvez appliquer la puissante fonctionnalité Rechercher et remplacer pour supprimer facilement des lignes en fonction d'une certaine valeur de cellule. Veuillez procéder comme suit:

1. Sélectionnez la plage dans laquelle vous supprimerez des lignes en fonction de certaines valeurs de cellule et ouvrez la boîte de dialogue Rechercher et remplacer en appuyant sur le Ctrl + F touches simultanément.

2. Dans la boîte de dialogue Rechercher et remplacer, veuillez saisir la valeur de la cellule (dans notre cas, nous entrons le Soe) dans le Find what et cliquez sur le Find All bouton. Voir la première capture d'écran ci-dessous:

3. Sélectionnez tous les résultats de la recherche au bas de la boîte de dialogue Rechercher et remplacer et fermez cette boîte de dialogue. (Notes: Vous pouvez sélectionner l'un des résultats de la recherche, puis Ctrl + A touches pour sélectionner tous les résultats trouvés. Voir la deuxième capture d'écran ci-dessus.)
Et puis vous pouvez voir que toutes les cellules contenant la certaine valeur sont sélectionnées.

4. Allez-y pour faire un clic droit sur les cellules sélectionnées et sélectionnez le Delete dans le menu contextuel. Et puis vérifiez le Entire row dans la boîte de dialogue Supprimer, puis cliquez sur le OK bouton. Vous verrez maintenant que toutes les cellules contenant la certaine valeur sont supprimées. Voir les captures d'écran ci-dessous:

Et puis des lignes entières ont déjà été supprimées en fonction de la certaine valeur.


Supprimer les lignes en fonction de la valeur de la cellule avec le code VBA

Avec le code VBA suivant, vous pouvez supprimer rapidement les lignes avec une certaine valeur de cellule, procédez comme suit:

1. appuie sur le Alt + F11 clés en même temps pour ouvrir Microsoft Visual Basic for applications fenêtre,

2. Cliquez Insert > Moduleet entrez le code suivant dans le module:

VBA: supprimer des lignes entières en fonction de la valeur de la cellule

Sub DeleteRows()
'Updateby20140314
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As String
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2)
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
        End If
    End If
Next
DeleteRng.EntireRow.Delete
End Sub

3. Puis cliquez sur le Run bouton pour exécuter le code.

4. Dans la boîte de dialogue qui s'affiche, sélectionnez la plage dans laquelle vous supprimerez les lignes en fonction de la valeur donnée, puis cliquez sur le bouton OK .

5. Dans une autre boîte de dialogue, veuillez saisir la valeur sur laquelle vous supprimerez les lignes et cliquez sur le bouton OK bouton. Voir la capture d'écran:

Et puis vous verrez des lignes entières ont déjà été supprimées en fonction de la valeur spécifiée.


Supprimer des lignes basées sur une ou deux valeurs de cellule avec Kutools for Excel

Si vous avez installé Kutools for Excel, il est Select Specific Cells La fonctionnalité peut vous aider à supprimer rapidement les lignes avec une valeur spécifique. Veuillez procéder comme suit:

Kutools pour Excel - Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune carte de crédit requise! Achetez-le Maintenant

1. Sélectionnez la plage dans laquelle vous supprimerez les lignes en fonction de la valeur donnée, puis cliquez sur Kutools > Select > Select Specific Cells. Voir la capture d'écran:

2. Dans la boîte de dialogue d'ouverture Sélectionner les cellules spécifiées, veuillez cocher Entire row option, sélectionnez Contains à partir de Specific type liste déroulante, entrez la valeur spécifiée dans la case de droite et cliquez sur le Ok bouton (Voir la capture d'écran ci-dessus).
Après avoir appliqué cette fonctionnalité, une boîte de dialogue apparaîtra et vous montrera combien de cellules ont été trouvées en fonction des critères spécifiés. Veuillez cliquer sur le OK bouton pour le fermer.

3. Maintenant, des lignes entières avec une certaine valeur sont sélectionnées. Veuillez faire un clic droit sur les lignes sélectionnées, puis cliquez sur le bouton Delete dans le menu contextuel. Voir la capture d'écran ci-dessous:

Notes: Ce Select Specific Cells La fonctionnalité prend en charge la suppression des lignes par une ou deux certaines valeurs. Pour supprimer des lignes en fonction de deux valeurs spécifiées, veuillez spécifier une autre valeur dans le Specific type section de la boîte de dialogue Sélectionner des cellules spécifiques comme illustré ci-dessous:

Kutools pour Excel - Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune carte de crédit requise! Achetez-le Maintenant


Supprimer les lignes en fonction de plusieurs valeurs de cellule avec Kutools for Excel

Dans certains cas, vous devrez peut-être supprimer des lignes en fonction de plusieurs valeurs de cellule d'une autre colonne / liste dans Excel. Ici je vais vous présenter Kutools for Excel's Select Same & Different Cells fonction pour le résoudre rapidement avec facilité.

Kutools pour Excel - Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune carte de crédit requise! Achetez-le Maintenant

1. Cliquez Kutools > Select > Select Same & Different Cells pour ouvrir la boîte de dialogue Sélectionner les cellules identiques et différentes.

2. Dans l'ouverture Select Same & Different Cells boîte de dialogue, procédez comme suit (voir capture d'écran):

(1) Dans le Find values in , veuillez sélectionner la colonne où vous trouverez certaines valeurs;
(2) Dans le According to , veuillez sélectionner la colonne / liste avec plusieurs valeurs sur lesquelles vous supprimerez les lignes;
(3) Dans le Based on section, veuillez vérifier la Each row l'option;
(4) Dans le Find section, veuillez vérifier la Same Values l'option;
(5) Vérifiez le Select entire rows option en bas de la boîte de dialogue d'ouverture.
Notes: Si deux colonnes spécifiées contiennent le même en-tête, veuillez vérifier la My data has headers option.

3. Clique le Ok bouton pour appliquer cet utilitaire. Et puis une boîte de dialogue apparaît et montre combien de lignes ont été sélectionnées. Cliquez simplement sur OK bouton pour le fermer.

Et puis toutes les lignes contenant des valeurs parmi la liste spécifiée ont été sélectionnées.

4. Cliquez Home > Delete > Delete Sheet Rows pour supprimer toutes les lignes sélectionnées.


Démo: supprimer des lignes basées sur une ou plusieurs valeurs de cellule dans Excel


Kutools pour Excel comprend plus de 300 outils pratiques pour Excel, gratuits à essayer sans limitation en 30 jours. Téléchargez et essayez gratuitement maintenant!

Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    yogesh · 1 years ago
    In given range, if any cell contains defined text the entire row gets deleted.

    Pls share code
    • To post as a guest, your comment is unpublished.
      kellytte · 1 years ago
      Hi Yogesh,
      On this webpage, the second method is to delete rows by cell values with VBA code. You can go to there and copy the code directly!
      https://www.extendoffice.com/documents/excel/815-excel-remove-rows-based-on-cell-value.html#vba
      • To post as a guest, your comment is unpublished.
        TomTheToolman · 2 months ago
        There are two issues with the code posted as of this date. 1) the variable xTitleId is not declared, which causes a compilation error if Option Explicit is in use. 2) With Excel 2016, it appears that a range is limited to 129 areas. Each discontiguous matching cell found in the loop creates another area in the DeleteRng variable. Unfortunately, the Union method does not raise an error if that number of areas is exceeded; it just ignores the remaining cells. When the loop is finished, DeleteRng will have no more than 129 areas.
  • To post as a guest, your comment is unpublished.
    kaushal · 4 years ago
    very well. Thank you!
  • To post as a guest, your comment is unpublished.
    Bobby · 4 years ago
    Can someone help me...If 3rd column has value 0, then delete all values of corresponding column 1st.
    In this case answer should be the last line only....

    Check MenuName ID
    3149 VNLA MILFLLE 2
    3149 TURKEY PNN 0
    3149 R. BEEF PNN 0
    3149 MIX MOCHA 38
    3150 M.G.R 1/2 0
    3150 THE PEPPE L 0
    3150 MIX SLD 0
    3150 EGGPLANT 0
    3150 STILL WATER 7
    3151 MIX MOCHA 38
  • To post as a guest, your comment is unpublished.
    Amar · 5 years ago
    Thanks for sharing. I am actually looking for a code that doesn't ask user for range but instead selects a specific column say column "A" and runs till the last row of that column. Can you please help..
  • To post as a guest, your comment is unpublished.
    Marion · 5 years ago
    Hi everybody,

    I am wondering what can we do to delete the following (According to the example shown in this page): Soe appears at several date (sept, October... etc). What I would like is to delete the line where Soe is but to keep the line with last date she appeared. In addition, some lines could be in double but I still want to keep it.

    So for example, you have the lines:
    - July 3 /Soe
    - Sep 4 / Soe
    - Sep 4 / Soe
    - Oct 19/ Soe
    - Nov 13 / Soe
    - Nov 13 / Soe

    and what I want to keep is:
    - Nov 13 / Soe
    - Nov 13 / Soe

    [i][b]My real case is:[/b][/i] I have different EAN code and version 1, 2, 3 or 4 and I want to keep the line where the version is the higher.
    e.g.: I have:
    - EAN 1 / Version 1
    - EAN 1 / Version 1
    - EAN 1 / Version 2
    - EAN 1 / Version 2
    - EAN 2 / Version 2
    - EAN 2 / Version 3
    - EAN 2 / Version 3


    and I want to keep:
    - EAN 1 / Version 2
    - EAN 1 / Version 2
    - EAN 2 / Version 3
    - EAN 2 / Version 3


    I am searching since hours and I am completely blocked on this issue.

    Many thanks in advance for your brain and help.

    Best,

    Marion
  • To post as a guest, your comment is unpublished.
    Aju Thoas · 5 years ago
    Hi,

    Thank you this was really helpful. However, there's an error that pops up when I run the codes it says "Object variable or with block variable not set" and it points to " the line DeleteRNG.EntireRow.Delete". Could you please help me with debugging this.

    Thanks.
  • To post as a guest, your comment is unpublished.
    PC · 6 years ago
    I am trying to use this macro in order to delete unused formulas, because excel views blank formula cells as a zero value and will print extra pages. I was hoping when I deleted the unused formulas, when I printed it would only print the pages that had information. This is not the case and I really need help to find a solution. I have tried using this formula and it is not working and prints three extra pages that I do not need even with the extra formulas being deleted.

    Sub selectonly()
    '
    ' selectonly Macro
    '

    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
    End Sub
  • To post as a guest, your comment is unpublished.
    NEU · 6 years ago
    thank you so much. That save me a lot of time
  • To post as a guest, your comment is unpublished.
    NC Arch · 6 years ago
    Trying to find a delete Function that will delete entire designated rows automatically, based on certain values or certain text contained in other cell(s), using only automated formulas.
  • To post as a guest, your comment is unpublished.
    Clay · 6 years ago
    How can i delete selected cell that i want based on value that i entered for example :
    A1 B1 C1 D1
    A2 B2 C2 D2
    A3 B3 C3 D3
    A4 B4 C4 D4

    When i entered in some cell for example "2" then 2 row will be deleted from A3:D4. If i entered "1" then 1 row will be deleted from A4:D4. if i entered "3" then 3 row will be deleted from A2:D4
  • To post as a guest, your comment is unpublished.
    Milon · 6 years ago
    Great it work thank you so much
  • To post as a guest, your comment is unpublished.
    Moe · 6 years ago
    Hello, many thanks for the code. But say I want to delete one row containing "Apple". And not all of the rows containing it. Let's just say the last one, or a random one, doesn't really matter, just one. Many thanks in advance! :-)
  • To post as a guest, your comment is unpublished.
    Meredith · 6 years ago
    Just what I needed, thanks! :D
  • To post as a guest, your comment is unpublished.
    JonS · 6 years ago
    Is there anyway to have the value recognize a value that has expired, such as. All rows that show an expiration date within a specific column will be automatically removed and then the rows that were deleted will be filled by moving the rows beneath. Filling gaps.
  • To post as a guest, your comment is unpublished.
    angel baby · 6 years ago
    What a great. thank so all so much. :)
  • To post as a guest, your comment is unpublished.
    DavidGough · 6 years ago
    is it possible to compare two columns and then delete? is in range A3:D3000 if cell A=x and cell B=y then delete row?
  • To post as a guest, your comment is unpublished.
    DavidGough · 6 years ago
    How can I specify the range A3:D3000 (ie. I don´t want the user to select the range)? How can I make the Delete String a cell reference, ex. G1?
  • To post as a guest, your comment is unpublished.
    Joan K · 6 years ago
    Hello and thank you very much for the VBA code. I have one question.

    Is it possible to make the code the way that it is possible to choose several cell values to delete at the same time? For example choose Apple and Emily at the same time and delete them?
    I appreciate you work and looking forward to your response.

    Joan K
  • To post as a guest, your comment is unpublished.
    Victor · 7 years ago
    i have a list of stores in one document. I have a report that returns thousand of lines. the store number is always in Column A. Is there a code/macro that will search the report and delete all columns with store numbers from the store list. thinking a vlookup and "Do While" are needed.
  • To post as a guest, your comment is unpublished.
    alex2 · 7 years ago
    I'd like to delete all rows where column1 = "Apple" AND column3 = "green". please?
    • To post as a guest, your comment is unpublished.
      Finidi · 7 years ago
      Im not sure how to do this using macro's or so, but one option that would do its job just fine is to add an extra colum that tests for the one colum to be "apple" and the other to be "green" and then let it give a simple "yes" or "no" value. than use either of the above options to search for the value "yes" and remove rows based on that instead of 2 seperate values.
  • To post as a guest, your comment is unpublished.
    gabz · 7 years ago
    thank.. it helps me a lot...
  • To post as a guest, your comment is unpublished.
    smj2013 · 7 years ago
    Thank you for the VB Script. I can not wait to try this. Question:Is there anyway to mark the columns for deletion prior to deleting them and/or copy to a separate tab in the workbook? In addition is there a way to run this script run on multiple workbooks/files at one time?
  • To post as a guest, your comment is unpublished.
    Leo · 7 years ago
    Hi,
    Any way to write it to delete a row, with an OR exception? I.e- delete rows that are duplicates, but ignore a certain value. I want to delete duplicates, except where the column in question contains a blank b/c that column doesn't have valid data yet. I ran as you have, but I ended deleting rows with a blank in the column in question, so I can't use it as it is.
    Thanks
  • To post as a guest, your comment is unpublished.
    Tee · 7 years ago
    Hi,
    What is the easiest way to delete rows that do NOT contain "Apple" please?

    Thanks
  • To post as a guest, your comment is unpublished.
    Aleardo · 7 years ago
    Thanks, this is great!
    Quick comment, I tried the find and replace function in excel 2010.
    In order to select all the found results I had to use Ctrl +A instead of Alt + A.
  • To post as a guest, your comment is unpublished.
    Mira · 7 years ago
    Definitely awsome! Appreciate for sharing!!!
  • To post as a guest, your comment is unpublished.
    Joe Nelson · 7 years ago
    I just wanted to say thank you. This worked like a charm.
  • To post as a guest, your comment is unpublished.
    Adam · 7 years ago
    Lets say I put the below code in to delete all of my rows that contain apple but then I want it to continue once that is done and delete all the rows that contain banana? I tried to just duplicate the code but it seems to stop after apple.

    thanks.

    Sub Delete_Rows()
    Dim rng As Range, cell As Range, del As Range
    Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange)
    For Each cell In rng
    If (cell.Value) = "Apple" _
    Then
    If del Is Nothing Then
    Set del = cell
    Else: Set del = Union(del, cell)
    End If
    End If
    Next cell
    On Error Resume Next
    del.EntireRow.Delete
    End Sub
  • To post as a guest, your comment is unpublished.
    H man · 8 years ago
    I get:

    run-time error '13':
    Type mismatch

    Debugging highlights the If (cell.Value) = "FALSE" _
    Then
    section.

    I'm totally lost in MVB, any help would be appreciated.
  • To post as a guest, your comment is unpublished.
    Jim Mc · 8 years ago
    Heartfelt thanks - it's always amusing when the Marketing guy tries to write code, and this info was super helpful. I was unable to get the code to span multiple columns ("AA2:AA3000" works, "AB2:AB3000" works, but "AA2:AB3000" doesn't work. There's no Earth-shattering Kaboom - it just does nothing. I've solved it (amateurishly, I suppose) by running several macros in sequence, but there's probably a more elegant way. Thanks again for your help, Jim (Melville, NY)
  • To post as a guest, your comment is unpublished.
    Claire · 8 years ago
    Hey - thanks so much for the script. I was wondering if you can use wildcards so you can select anything within a cell that matches rather than a specific item? I've tried using ** wildcards but it doesn't seem to do anything. Here is what I have:

    Sub Delete_Rows()
    Dim rng As Range, cell As Range, del As Range
    Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange)
    For Each cell In rng
    If cell.Value Like "*WORDTODELETE*" _
    Then
    If del Is Nothing Then
    Set del = cell
    Else: Set del = Union(del, cell)
    End If
    End If
    Next cell
    On Error Resume Next
    del.EntireRow.Delete
    End Sub
  • To post as a guest, your comment is unpublished.
    Art · 8 years ago
    Bobby, try this, it should get what you want:
    If (cell.Value) = "Apple" OR (cell.Value) = "Monday"
    • To post as a guest, your comment is unpublished.
      April · 8 years ago
      Is there anyway to have the value recognize a value whether is > or = to a certain value?
  • To post as a guest, your comment is unpublished.
    Bobby · 8 years ago
    Any way to modify the If (cell.Value) = "Apple" to include multiple values?
  • To post as a guest, your comment is unpublished.
    Alan · 8 years ago
    Fantastic! That worked a treat, I altered it slightly to suit what I needed but pure genious. Oh VBA Version.