Compter toutes les cellules non vides sauf celles barrées

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

  • calendrier_2018.xls
    39 KB · Affichages: 26

Lone-wolf

XLDnaute Barbatruc
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
 

CouleurCourriel

XLDnaute Nouveau
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
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130