Skip to content
Natuurondernemer
    mai 6, 2020 by admin

    Comment supprimer une rangée entière dans Excel en utilisant VBA (exemples)

    Comment supprimer une rangée entière dans Excel en utilisant VBA (exemples)
    mai 6, 2020 by admin

    Ajouter et supprimer des rangées fait partie des tâches courantes quotidiennes lorsque vous travaillez avec Excel.

    Bien que vous puissiez le faire facilement à partir de la feuille de calcul elle-même, vous pouvez parfois vouloir utiliser la voie VBA pour supprimer des rangées dans Excel. Il peut s’agir de la suppression d’une ligne spécifique, de plusieurs lignes dans la sélection, de la suppression de lignes alternées ou de celles qui contiennent une valeur spécifique.

    Dans ce tutoriel, je vais vous montrer comment supprimer des lignes dans Excel en utilisant VBA (plusieurs scénarios).

    Alors, commençons !

    Ce tutoriel couvre :

    Supprimer une ligne entière en utilisant VBA

    Pour supprimer une ligne entière dans Excel en utilisant VBA, vous devez utiliser la méthode EntireRow.Delete.

    Par exemple, si vous voulez supprimer l’intégralité de la première ligne d’une feuille de calcul, vous pouvez utiliser le code ci-dessous :

    Sub DeleteEntireRow()Rows(1).EntireRow.DeleteEnd Sub

    Le code ci-dessus spécifie d’abord la ligne qui doit être supprimée (ce qui est fait en spécifiant le numéro entre parenthèses) et utilise ensuite la méthode EntireRow.Delete pour la supprimer.

    Vous pouvez également supprimer plusieurs lignes en spécifiant ces lignes dans le code.

    Par exemple, le code ci-dessous supprimera la ligne numéro 1, 5 et 9 dans la feuille de calcul :

    Sub DeleteEntireRow()Rows(9).EntireRow.DeleteRows(5).EntireRow.DeleteRows(1).EntireRow.DeleteEnd Sub

    Le code ci-dessus utilise la même logique, où il spécifie les numéros de ligne et Excel supprimera ces lignes une par une.

    IMPORTANT : lorsque vous supprimez des lignes avec quelque chose de similaire au code ci-dessus, n’oubliez pas de commencer la suppression par le bas, puis de remonter. Par exemple, dans le cas où vous commencez en haut et supprimez d’abord la rangée 1, toutes les rangées en dessous seraient décalées d’une rangée vers le haut et la numérotation serait erronée (car la rangée 5 deviendrait la rangée 4 et ainsi de suite)

    Supprimer toutes les rangées dans la sélection

    Dans le cas où vous voulez supprimer toutes les rangées dans une plage sélectionnée de cellules, vous pouvez utiliser le code de macro VBA ci-dessous :

    Sub DeleteEntireRow()Selection.EntireRow.DeleteEnd Sub

    Le code ci-dessus s’applique à la méthode EntireRow.Delete à l’ensemble de la sélection.

    Supprimer les rangs alternatifs (ou supprimer chaque troisième/quatrième/neuvième rang)

    Parfois, vous pouvez obtenir un vidage de données où chaque deuxième rang (ou troisième, quatrième ou Nième rang) est inutile et doit être supprimé.

    J’avais l’habitude de travailler avec des données financières où une ligne sur deux était vide et devait être supprimée.

    C’est le type de scénario où VBA brille vraiment.

    Voici le code VBA qui va parcourir toutes les lignes de la sélection et supprimer une ligne sur deux :

    Sub DeleteAlternateRows()RCount = Selection.Rows.CountFor i = RCount To 1 Step -2 Selection.Rows(i).EntireRow.DeleteNext iEnd Sub

    Laissez-moi vous expliquer comment ce code VBA fonctionne.

    D’abord, j’ai utilisé une variable RCount pour obtenir le nombre total de lignes dans la sélection.

    Puis j’ai utilisé une boucle For Next pour exécuter ceci autant de fois qu’il y a de lignes. Par exemple, s’il y a 12 lignes, cette boucle s’exécutera de 12 à 1 (c’est-à-dire 12 fois). Il est important d’exécuter cela de la dernière ligne de la sélection à la première car nous ne voulons pas que les numéros de ligne changent lorsqu’une ligne est supprimée.

    De plus, l’étape -2 est utilisée car nous devons supprimer une ligne sur deux (de bas en haut). Au cas où vous voudriez supprimer une ligne sur trois, vous pouvez utiliser l’étape -3.

    Dans la boucle VBA, j’ai utilisé la méthode Selection.Rows(i).EntireRow.Delete pour supprimer une ligne sur deux.

    Supprimer les lignes vides avec VBA

    Vous pouvez également utiliser la méthode EntireRow.Delete pour supprimer toutes les lignes vides.

    Voici le code VBA qui sélectionnera les cellules vides dans l’ensemble de données sélectionné et supprimera la ligne entière.

    Sub DeleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).EntireRow.DeleteEnd Sub

    Le code ci-dessus utilise la propriété SpecialCells pour sélectionner et supprimer toutes les cellules vides. C’est la même méthode qui nous permet également d’utiliser la boîte de dialogue ‘Go To Special’ pour sélectionner toutes les cellules vides.

    Une fois que ces cellules vides sont identifiées à l’aide de SpecialCell, celles-ci sont ensuite supprimées à l’aide de la méthode EntireRow.Delete.

    Note : Cette méthode sélectionne les cellules qui sont vides et ne vérifie pas si la ligne entière est vide ou non. Donc, si n’importe quelle cellule est vide dans une rangée, cela supprimerait quand même la rangée entière.

    Supprimer les rangées avec un mot/valeur spécifique

    Vous pouvez également utiliser un simple code VBA pour parcourir chaque cellule de la plage sélectionnée et supprimer toutes les rangées où une cellule contient un texte ou une valeur spécifique.

    Par exemple, supposons que vous ayez un ensemble de données et que je veuille supprimer toutes les cellules qui ont le texte Imprimante dans la colonne 2 de la sélection.

    Dataset from where delete entire row with specific value

    Voici le code qui va faire cela:

    Sub DeleteRowswithSpecificValue()For i = Selection.Rows.Count To 1 Step -1If Cells(i, 2).Value = "Printer" ThenCells(i, 2).EntireRow.DeleteEnd IfNext iEnd Sub

    Le code ci-dessus compte d’abord le nombre total de lignes dans la sélection. Cela permettra de s’assurer que la boucle n’est exécutée que ce nombre de fois. Il utilise ensuite la boucle ‘For Next’ pour parcourir toutes les cellules de la colonne 2.

    L’instruction IF THEN ELSE est ensuite utilisée pour vérifier la valeur dans chaque cellule de la colonne 2. Et au cas où la valeur/le texte correspond au texte spécifié (qui est ‘Imprimante’ dans cet exemple).

    Dans cet exemple, j’ai vérifié si le texte correspond à une chaîne spécifique ou non. Vous pouvez également faire cela avec des valeurs. Par exemple, vous pouvez supprimer toutes les lignes où la valeur de vente est inférieure à 1000 ou supérieure à 1000.

    Note : Une chose importante à noter ici est que la boucle s’exécute à partir de Selection.Rows.Count To 1 pour s’assurer que lorsqu’une ligne est supprimée, cela n’a pas d’impact sur les lignes au-dessus d’elle.

    Comment utiliser ce code VBA

    Maintenant, laissez-moi vous montrer comment utiliser tous les codes mentionnés dans ce tutoriel pour supprimer la ligne entière.

    Vous devez copier et coller ces codes dans un module de l’éditeur VB d’Excel. Une fois que vous avez copié ces codes, vous pouvez ensuite exécuter les codes macro.

    Voici les étapes pour copier et coller ces codes VBA dans un module :

    1. Maintenez la touche ALT et appuyez sur la touche F11 (ou Fonction + Option + F11 sur Mac). Cela ouvrira l’éditeur VB
    2. Dans l’éditeur VB, vous aurez l’explorateur de projet sur la gauche. Si vous ne le voyez pas, allez dans l’option Affichage puis cliquez sur Explorateur de projet.Cliquez sur l'explorateur de projet
    3. Cliquez avec le bouton droit de la souris sur n’importe quel objet de l’explorateur de projet (pour le classeur dans lequel vous voulez exécuter le code).Insérez un module
    4. Allez dans Insertion puis cliquez sur Module. Cela va insérer un nouveau Module pour le classeurCopier et coller pour supprimer une ligne entière dans le module
    5. Copier et coller les codes ci-dessus dans le module.

    Et pour exécuter ces codes, vous pouvez placer le curseur n’importe où dans le code (que vous voulez exécuter) et appuyer sur la touche F5 (ou cliquer sur le triangle vert dans la barre d’outils VBA).

    J’ai également rédigé un tutoriel détaillé sur les différentes façons d’exécuter des codes macro VBA dans Excel.

    Au cas où vous auriez besoin d’utiliser l’un de ces codes assez souvent, vous pouvez également envisager de les ajouter au classeur de macros personnelles, puis au QAT. De cette façon, le code sera à votre disposition dans n’importe lequel de vos classeurs en un seul clic.

    Voici donc quelques codes VBA que vous pouvez utiliser pour supprimer des lignes entières dans Excel (dans différents scénarios). La même logique peut également être appliquée dans le cas où vous souhaitez supprimer des colonnes au lieu de lignes (avec l’ajustement correspondant dans les exemples de code).

    J’espère que vous avez trouvé ce tutoriel utile !

    Vous aimerez peut-être aussi les tutoriels Excel suivants :

    • Excel VBA Autofilter : Un guide complet avec des exemples
    • Supprimer des lignes en fonction de la valeur d’une cellule (ou d’une condition) dans Excel
    • Insérer une ligne vierge après chaque ligne dans Excel (ou chaque Nième ligne)
    • Comment décacher rapidement des COLONNES dans Excel

    .

    Previous articleLes 10 meilleures marques de pompes à chaleur de 2020 - Quelle est la meilleure marque de pompes à chaleur ?Next article La star de Mission : Impossible star Peter Graves meurt

    Laisser un commentaire Annuler la réponse

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Articles récents

    • Comment configurer un mineur ASIC de bitcoin
    • Qu’est-ce qu’un site Superfund?
    • Les vers de sang appâtés par la pêche ont des piqûres d’abeilles
    • Echolalie : Les faits au-delà du « langage de perroquet », du script et de l’écho
    • Citations de Lord of the Flies
    • Guide du débutant pour le pegging
    • 42 Recettes de soupes à la mijoteuse saines
    • 3 risques surprenants d’une mauvaise posture
    • Biographie de Tina Fey
    • Qu’est-ce que les courants océaniques ?

    Archives

    • avril 2021
    • mars 2021
    • février 2021
    • janvier 2021
    • décembre 2020
    • novembre 2020
    • octobre 2020
    • septembre 2020
    • août 2020
    • juillet 2020
    • juin 2020
    • mai 2020
    • avril 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Méta

    • Connexion
    • Flux des publications
    • Flux des commentaires
    • Site de WordPress-FR
    Posterity WordPress Theme