Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
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.
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,
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.