Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compter toutes les cellules non vides sauf celles barrées

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CouleurCourriel

XLDnaute Nouveau
Bonjour,
Je souhaite comptabiliser le nombre de cellule non vide d'une liste sauf ceux dont j'ai barré les noms ou mis un signe distinctif.

J'ai essayé "=NBVAL(D5:35)-NBVAL(D5:35<>"-")"
"=NBVAL(D5:35)-NB.SI(D5:35;"-")"
et "=NBVAL(D5:35<>"-")"

J'ai également remplacé le "-" par "*" et "1" mais cela ne fonctionne pas.
Est-ce possible avec une formule excel ou dois-je passer par le VBA que je ne connais absolument pas ?
Mon fichier en pj.

Merci de vos réponses,

CC
 

Pièces jointes

Re
Il faut copier la fonction dans le Module1 des fichiers
Touches Alt +F11 pour aller dans l’éditeur Vba
Cliquer ensuite sur Module1
Copier la fonction
Répéter avec l'autre fichier et coller la fonction
En cas de problème ne pas hésiter a revenir
 
Bonjour pierrejean 🙂

Sans avoir vu la fonction de pierrejean, à mettre dans un module standard.

VB:
Function NonBarré(plage As Range) As Integer
Dim cel As Range, temp
    Application.Volatile True
    For Each cel In plage
        If cel.Font.Strikethrough = False And cel <> vbNullString Then _
        temp = temp + 1: NonBarré = temp
    Next cel
End Function

Clique sur FX > Fonctions personnalisées
 
Super ! Merci pierrejean !

Mais pour aider d'autres, car j'ai dû insérer le Module1 (absent) dans mon fichier, soit :
- Alt+F11 -ou onglet "développeur", puis "visual basic"-
- Onglet "insertion"
- puis "module" et là, coller la formule :
Function nb_pas_barre(zone)
For Each cel In zone
If cel.Value <> "" And cel.Font.Strikethrough = False Then
nb = nb + 1
End If
Next
nb_pas_barre = nb
End Function
 
Bonsoir le fil, le forum

Parce qu'un fil n'est jamais vraiment résolu 😉
Une autre fonction personnalisée
VB:
Function NBSPEC(r As Range)
Dim c As Range, cpt&
For Each c In r
cpt = cpt + (Len(c) And Not c.Font.Strikethrough)
Next
NBSPEC = cpt
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…