formateur informatique

Fonction VBA pour repérer et filtrer les cellules en gras

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Fonction VBA pour repérer et filtrer les cellules en gras
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Fonction pour repérer les cellules en gras

A l'occasion d'une astuce, nous avions appris à repérer les cellules en gras dans un tableau Excel. Pour cela, nous avions exploité la fonction de macro Lire.Cellule dans une plage nommée. Ici, nous proposons de récidiver mais en créant une fonction VBA. L'objectif est de pouvoir répliquer la formule ainsi créée sur tout le tableau pour repérer chaque ligne formatée en gras. Il ne nous restera plus qu'à appliquer les filtres automatiques pour les regrouper toutes dans une même vue.

Classeur Excel à télécharger
Pour la démonstration de l'astuce, nous suggérons d'appuyer l'étude sur un classeur Excel hébergeant un tableau dense abritant de nombreuses lignes formatées en gras. Tableau Excel à filtrer sur les lignes en gras

Nous découvrons un riche tableau. Il est composé de plus de 200 lignes. Certaines d'entre elles sont effectivement formatées en gras. Les filtres automatiques sont déjà en place, en atteste la présence des petits boutons fléchés dans chaque entête de colonne. Un calcul de synthèse exploitant la fonction Sous.Total rend compte du nombre de lignes visibles en haut de la dernière colonne.

Créer la fonction VBA
Ce classeur prend en charge les macros. Nous proposons donc de développer cette fonction en son sein. Mais nous avions déjà appris à créer des fonctions VBA pour qu'elles soient disponibles pour toutes les utilisations d'Excel. Pour cela, il faut les enregistrer dans la bibliothèque.
  • Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
  • En haut de la fenêtre, cliquer sur le menu Insertion,
  • Dans les propositions, choisir l'option Module,
Nous créons ainsi un nouveau module qui apparaît de fait dans l'arborescence de l'explorateur de projet. Sa feuille de code apparaît quant à elle au centre de l'écran. Elle est fort naturellement vierge pour l'instant.
  • Dans cette feuille de code, créer la fonction filtrerGras comme suit :
Function filtrerGras(cellule As Range) As String

End Function


Nous la déclarons avec un paramètre en attente pour que l'utilisateur puisse désigner la première cellule à partir de laquelle il est question de débuter le repérage. Nous la typons comme une fonction de texte (As String). Nous souhaitons en effet qu'elle retourne des informations textuelles plutôt que booléennes.

Repérer les lignes en gras
Nous le savons, la propriété Font d'un objet de cellule (Range) renseigne sur les propriétés de police de cette dernière. Avec la propriété enfant Bold, nous pouvons connaître le style qui lui est appliqué. Nous devons donc utiliser une instruction conditionnelle pour tester la valeur de cette propriété enfant.
  • Dans les bornes de la fonction, créer l'instruction conditionnelle suivante :
Function filtrerGras(cellule As Range) As String
If cellule.Font.Bold Then
filtrerGras = "Gras"
Else
filtrerGras = "Normal"
End If

End Function


Donc, si la propriété Bold répond favorablement pour la cellule testée, nous retournons le texte gras et le texte Normal dans le cas contraire. Comme vous le savez, il n'existe pas d'instruction Return en VBA. C'est l'affectation du nom de la fonction elle-même qui retourne l'indication qui lui est transmise.

Marquer les lignes en gras
Notre fonction est triviale. Elle est effectivement déjà terminée. Il ne nous reste plus qu'à la tester.
  • Enregistrer les modifications (CTRL + S) et basculer sur la fenêtre du navigateur (ALT + Tab),
  • Sélectionner la première case de la dernière colonne en cliquant sur la cellule G4,
  • Puis, construire la formule suivante : =filtrerGras(F4), et valider par CTRL + Entrée,
Nous testons donc le style de la cellule voisine. Et pour cette première ligne, la fonction répond fort naturellement par le texte Normal.
  • Double cliquer sur la poignée du résultat pour propager la logique sur la hauteur du tableau,
Comme vous pouvez l'apprécier, chaque ligne en gras est repérée par la mention Gras. En revanche, si vous passez une nouvelle ligne en gras a posteriori, le calcul ne s'actualise pas, fort naturellement. Une modification de style n'induit pas le recalcul automatique des formules de la feuille.

Filtrer les lignes en gras
Nous pouvons maintenant exploiter les résultats de cette fonction personnalisée pour filtrer les lignes en gras, considérées comme importantes, et ainsi exclure toutes les autres de la vue, sans les supprimer bien entendu.
  • Cliquer sur la flèche de filtre en haut de la dernière colonne,
  • Puis, décocher la case Normal et valider par Ok,
Filtrer les lignes en gras grâce à une fonction VBA Excel

Comme vous pouvez l'apprécier, le tableau est instantanément filtré et seules subsistent les lignes en gras. D'ailleurs, le calcul de synthèse sur le nombre de lignes restantes s'actualise parfaitement, en haut de la dernière colonne. C'est avec beaucoup plus de confort que l'utilisateur peut désormais étudier ces informations importantes.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn