Suppression de valeurs nulles d’un tableau de données (Microsoft Excel)
Robert aimerait une macro qui trouve toutes les instances de cellules dans une table de données qui ont une valeur zéro et, ensuite, supprime ces cellules. Il se demande comment s’y prendre.
Pour les besoins de cette astuce, je vais supposer que Robert veut réellement effacer les valeurs dans les cellules, pas réellement supprimer les cellules.
De plus, je vais supposer qu’il ne veut pas simplement masquer les valeurs nulles, comme cela peut être facilement fait avec un simple changement de paramètre dans Excel.
(Comment vous faites cela a été traité dans d’autres ExcelTips.)
Il existe en fait plusieurs façons de vous débarrasser de vos valeurs nulles. Un moyen n’utilise même pas les macros, mais repose plutôt sur les capacités de recherche et de remplacement d’Excel:
-
Appuyez sur Ctrl + H. Excel affiche l’onglet Remplacer de la boîte de dialogue Rechercher et remplacer.
-
Cliquez sur le bouton Options pour développer la boîte de dialogue. (Voir la figure 1.)
-
Dans la zone Rechercher, entrez 0.
-
Assurez-vous que la case Remplacer par est vide.
-
Cochez la case Faire correspondre tout le contenu de la cellule.
-
Cliquez sur Remplacer tout pour effectuer les remplacements.
Vous pouvez même, si vous le souhaitez, traduire les étapes ci-dessus en une petite macro courte:
Sub ReplaceZeros() Cells.Replace What:="0", Replacement:="", _ LookAt:=xlWhole, SearchOrder:=xlByRows End Sub
Il y a une limite à ce que cette approche accomplira, plus particulièrement elle ne remplacera que les cellules qui contiennent réellement une valeur 0. Il ne remplacera pas les formules qui se résolvent à 0. Par exemple, si une cellule contenait le fomula = 4-4, qui se résout à 0, l’opération Rechercher et remplacer l’ignore car il n’y a pas réellement de valeur 0 dans la cellule.
Si vous voulez quelque chose qui effacera réellement les cellules qui contiennent 0 ou se résolvent à 0, vous aurez besoin d’une approche macro différente. En voici une bonne:
Sub DeleteZeroes() Dim rCell As Range For Each rCell In Selection If rCell.Value = 0 Then rCell.ClearContents End If Next End Sub
Pour utiliser la macro, sélectionnez simplement les cellules que vous souhaitez affecter, puis exécutez la macro. Il examine chacune des cellules sélectionnées et supprime le contenu de toute cellule contenant une valeur 0 – et dans ce cas, cela inclut également toutes les formules qui se résolvent à 0.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13437) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.