[Retour à l'accueil]

Présentation et utilisation de la fonction "NbValFiltre"

La foncion "NbValFiltre" permet de compter le nombre de cellule non masquée dans une plage donnée
Pour utiliser la fonction dans une formule du tableur Excel rien de plus simple :
=NbValFiltre(plage)
Exemple:
=NbValFiltre(A1:A10)
Ainsi pour les valeurs suivantes :

A
1 Jerome
2 Jerome
3 Toto
4 Michel
5 Toto
6 Jacques
7 Jerome
8 Louis
9 Toto
10 Arlette
La fonction NbValFiltre retournera la valeur 10 (similaire à la fonction NBVAL dans ce cas ci)

La fonction se différencie lorsque des cellules sont masquées (au moyen d'un filtre par exemple).
En reprenant l'exemple ci dessus, si on filtre les lignes en fonction de la 1ère lettre et que cette lettre est "J", on se retrouvera avec le tableau suivant :

A
1 Jerome
2 Jerome
6 Jacques
7 Jerome
Dans de cas, NbValFiltre retournera 4 alors que NBVAL retournera toujours 10.

Mise en place de la fonction "NbValFiltre"

Cette fonction n'est pas une fonction fournie à la base avec Excel, il faut l'ajouter soit même.
C'est ce que je vais expliquer ici !

Créé un nouveau document Excel (sans l'enregistrer sur le disque dur) et appuyez sur les touches ALT + F11.
Une nouvelle fenêtre du nom de "Microsoft Visual Basic" vient de s'ouvrir, c'est ici qu'il faudra ajouter la nouvelle fonction.
Pour cela, il faut tout d'abord créer un nouveau module : Menu Insertion > Module
Une page blanche s'ouvre au milieu de la fenêtre (le 2 rouge de l'image suivante).


Dans un premier temps, il faut modifier le nom du module, pour cela, modifier la case "Name" (cadre 1 en vert), mettez la valeur "NbValFiltre" à la place de "Module1".

Voila le module est créé, il faut maintenant ajouter la fonction et la rendre accessible dans un classeur Excel, c'est parti !

Dans le cadre 2 (en rouge) sur l'image, on peut y ajouter du code (langage de programmation), ici je fourni le code de la fonction NbValFiltre que vous devez copier dans le cadre 2 :
Function NbValFiltre(laPlage As Range)
  Dim nb As Integer

  On Error Resume Next

  nb = 0

  For Each cell In laPlage
    If Not cell.EntireRow.Hidden And cell.Value Then
      nb = nb + 1
    End If
  Next cell
  On Error GoTo 0

  NbValFiltre = nb
End Function

Une fois le code copié, il faut enregistrer le module : Menu Fichier > Enregistrer ... (ou le racourci CTRL + S).
Logiquement une fenêtre pour "Enregistrer sous" va apparaitre, si ce n'est pas le cas, c'est que vous avez déjà enregistré le document, recommencez avec un nouveau sans l'enregistrer (ouvrir Excel avec un document vide par défaut).
Il ne faut pas enregistrer le fichier sous un format "Classeur Ms Office Excel (*.xls)" mais sous le format "Macro complémentaire Ms Office Excel (*.xla)", ceci afin de pouvoir réutiliser la fonction dans toutes vos feuilles Excel.
Enfin, nommez votre fichier "NbValFiltre.xla" et enregistré le.

Rendre la fonction accessible dans tous les documents Excel

Rendez vous dans n'importe quel document Excel, allez dans le menu "Outils > Macros Complémentaires..."
Dans la fenêtre qui vient de s'ouvrir, cochez la case NbValFiltre comme sur l'image ci-dessous.


Cliquez sur OK pour valider et la fonction sera accessible depuis tous les documents tant que la case restera cochée.
Testé enfin si "NbValFiltre" fonctionne bien !





[Retour à l'accueil]

Creative Commons License