fbpx

Macro VBA: Surligner les doublons

Docteur Excel te montre comment colorier les doublons avec une
macro VBA

⚡ Télécharge gratuitement le fichier Excel du tutoriel: Clique ici pour télécharger le fichier

 

 

Transcription de la vidéo

Salut c’est Docteur Excel

Aujourd’hui je vais te montrer comment faire pour surligner des valeurs en double en VBA ce qui va te permettre de le faire très rapidement.

Pour sa qu’est-ce qu’on va faire on va d’abord commencer par créer une macro, on va créer un bouton de macro on va l’appeler surligner doublons, on va faire Nouveau.

Alors moi je vais écrire du code mais tu sais tu peux télécharger le fichier en dessous de la vidéo comme ça tu suis avec moi, tu as déjà tout le fichier, tu peux le réutiliser si ca t’intéresse.

Alors tout d’abord on va avoir besoin de quoi?
On va aller dimensionner nos variables donc on va dire cellule as Range, plages as Range, on va rajouter un petit option Explicit au début du module.

Explicit ce qui est pratique pour pas avoir de souci en fait quand tu as des variables que t’as pas encore déclaré.

On va commencer par mettre cette plage égale sélection, donc ce sera la sélection actuelle au moment où on lance la macro et ensuite qu’est ce qu’on va faire pour savoir si c’est un doublon?

On va faire une boucle, on va faire For Each la cellule, on va appeler ca ma_cellule, in Range donc ça veut dire qu’on fait une boucle et on examine tour à tour chaque cellule dans dans la plage de départ, donc qui est la sélection.

Et on va faire si Application.WorksheetFunction.countif
parce qu’en VBA tu utilises les noms de fonctions en anglais donc le premier argument c’est la plage donc si dans plage on va vérifier dans plage et on veut que ce soit égal, on va compter si c’est égal à ma cellule.value

Et on va vérifier si c’est supérieur à un (il faut mettre le then, endif)
Alors qu’est ce qu’on fait dans cette boucle? En fait on vérifie ainsi dans la plage on rencontre plus d’une fois la valeur (d’ailleurs je me suis planté il faut y mettre ma cellule) si je rencontre plus d’une fois la valeur de ma cellule, à ce moment là je vais considérer que c’est un doublon et je vais la surligner.

Donc je vais faire ma_cellule.Interior.ColorIndex donc en fait c’est le tout simplement la couleur de fond et je vais mettre … je sais pas 46? Je crois que c’est le orange ou le rouge je sais plus.

Donc juste un petit point pour t’expliquer un peu cette instruction là comme on détecte le doublon en vba tu peux accéder aux fonctions aux formules classiques tu vois genre Somme Recherche, tout simplement tu utilises Applicaton.Worksheetfunction point le nom de la formule mais le nom de la formule en anglais donc en anglais c’est CountIf pour NB.SI

Donc tu vois c’est un peu particulier excel c’est à dire que les noms de fonction tu
peux les utiliser en VBA en anglais par contre elles sont disponibles dans chaque langue avec des noms différents.

Tu vois tu as un nom différent en français en allemand et si tu as un collègue allemand qui t’envoie un fichier avec que des formules allemands, toi quand tu va l’ouvrir en français ce sera traduit en français ce sera des noms de formules en français.

Donc c’est compatible entre les langues par contre si toi tu rentres une formule en allemand ou en anglais Excel ne va pas comprendre donc bon c’est un peu particulier tu vois les langues et les formules.
Je fais juste une petite parenthèse là dessus en tout cas tu peux les utiliser dans des macros avec l’instruction Application.WorksheetFunction

Du coup normalement c’est bon on va voir si ce code fonctionne donc si je prends un truc avec que des valeurs uniques?

Je me suis planté il faut que j’itère dans plage et puis j’ai mal nommé alors tu vois c’est l’intérêt d’utiliser option explicit c’est que si tu utilise des noms de variables qui n’existent pas, que t’as pas bien définies il te renvoie une erreur donc ça te permet de vérifier si tu as bien les variables etc les bons types etc

Il faut que je fasse next ma_cellule donc est donc là ça fonctionne donc il te renvoie à rien si tu as une sélection et que des valeurs uniques et là on va en prendre tout avec par exemple des doublons sur les A sur les B sur ce que tu veux et si je surligne?

Voila ca me les mets en orange a b c d …
Et pareil ici pour les valeurs numériques tu vois 1 2 3 4 5 6 7 8 9 3 ca va me surligner
les trois qui sont doublons.

Si je prends tout ça va me surligner 4 et 5 que j’ai deux fois.

Voilà donc là ça peut être assez pratique si tu veux un petit raccourci pour surligner des valeurs en double et les voir rapidement dans une liste de valeurs sans avoir à rajouter des formats
et comment ca s’appelle? des Mises en Forme Conditionnelles!

Tu vois les doublons tu peux aussi ( je vais te remettre tout ça en blanc) là tu peux tout simplement faire une mise en forme conditionnelle de manière classique surlignage valeur en double ok mais bon ca te fait une petite étape supplémentaire.

Voilà donc je je t’ai mis le fichier en dessous avec la macro en dessous de la vidéo et puis donc tu peux le télécharger si tu veux t’en inspirer et puis je te dis à demain pour un nouveau tutoriel!
Salut Ciao

About Docteur Excel
Tu souffres sur Excel ? Ça se soigne ! Un traitement de choc pour tous tes problèmes de tableur! Docteur Excel t'apprends à manipuler Excel avec une précision chirurgicale pour gagner un temps fou, éblouir ton patron et devenir un pro du tableur.