Masquer toutes les lignes sauf les valeurs en double avec Excel VBA

La macro précédente permet une recherche rapide et une sélection des doublons dans les données. Cela peut être utile. Cependant, si les données contiennent de nombreux enregistrements, elles peuvent apparaître la nécessité de dissimuler toutes les valeurs individuelles. Cette opération signifie que seules les lignes contenant des doublons seront visibles.
Comment ca marche?
La macro exécute une boucle pour toutes les cellules de la plage et l’instruction For Each est utilisée pour les activer. La fonction CountIf a été utilisée pour calculer le nombre d’occurrences d’une valeur donnée à partir de la cellule dans une plage donnée. Si le nombre de départs est égal à un, la ligne dans laquelle se trouve la cellule est masquée. Si le nombre est supérieur à un, la cellule est remplie de couleur et laissée visible.

Sub MasquerToutesLignes ()
'Étape 1: Déclaration des variables

Dim MyRange As Range

Dim MyCell As Range
'Étape 2: Spécifiez la plage cible.

Set MyRange = Selection
'Étape 3: Commencez la boucle pour la plage

For Each MyCell In MyRange
'Étape 4: Vérification de la mise en forme de la cellule en tant que texte

If Not IsEmpty(MyCell) Then
If WorksheetFunction.CountIf(MyRange, MyCell) > 1 Then
MyCell.Interior.ColorIndex = 36
MyCell.EntireRow.Hidden = False
Else
MyCell.EntireRow.Hidden = True
End If
End If
'Étape 5: Passez à la cellule suivante de la plage

Next MyCell
End Sub

 


1. Dans la première étape, deux variables de plage sont déclarées – dans la variable MyRange, l’adresse complète de la plage sera stockée, tandis que la variable MyCel l contiendra des données provenant de cellules calculées consécutivement à partir de la plage donnée.
2. Dans la deuxième étape, la plage de cellules cibles est transférée à la variable MRange. Dans ce cas, la plage sélectionnée est déjà sélectionnée dans la feuille. Bien entendu, la variable MyRange peut être définie sur une plage spécifique, par exemple Plage (“A1: Z100”). De même, si un nom est attribué à la plage. Ensuite, vous pouvez simplement entrer: Range (“MySpecial Name”).
3. Dans la troisième étape, une boucle est lancée, qui activera tour à tour chacune des cellules d’une plage spécifique.
4. Tout d’abord, à l’aide de la propriété IsEmpty, nous vérifions si la cellule donnée est vide. Grâce à cela, la macro ne masquera pas automatiquement les lignes de la plage qui ne contiennent pas de données.
WorksheetFunction a ensuite été utilisé pour exécuter la fonction CountIf.
Dans ce scénario particulier, le nombre d’occurrences de valeurs d’une cellule donnée (MyCell.Value) est compté dans la portée entière (MyRange).
Si CountIf renvoie une valeur supérieure à un, la couleur de la cellule sera modifiée et la valeur de EntireRow sera définie sur Caché = Faux. Grâce à cela, nous sommes sûrs que le poème sera visible.
Si CountIf ne renvoie pas plus d’une valeur, la macro ira à l’instruction Else. Ensuite, la propriété EntireRow est définie sur Hidden = True. Grâce à cela, nous sommes sûrs que le poème sera caché.
5. À l’étape cinq, la boucle passe à la cellule suivante. Après avoir activé toutes les sociétés, la fin de l’opération se termine dans la zone macro.
NOTE
Etant donné que l’étendue a été définie sur la zone actuellement sélectionnée, il est utile de s’assurer que les données contenant les cellules ont été sélectionnées avant l’exécution du code. En d’autres termes, ne choisissez pas une colonne ou une feuille. Sinon, chaque cellule contenant des données uniques (sans doublons) masquera la ligne. Un autre moyen d’éviter ce problème consiste à déterminer avec précision la plage de données, par exemple: Set MyRange = Range (“A1: Z100”).
Comment utiliser la macro?
Pour implémenter cette macro, vous pouvez copier et coller son code en mode standard. À cette fin:
1. Utilisez les touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille de calcul.
3. Sélectionnez Insérer / Module.
4. Tapez ou collez le code.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x