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

XL 2016 Compter des cellules vides selon critères

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 !

rounil09

XLDnaute Occasionnel
Bonjour,

Je n’arrive pas à me sortir de comptages de cellules vides (par formules de préférence, sinon par VBA).
Il s’agit de compter des cellules vides dans chaque ligne d’un tableau selon 2 critères :
. Nombre de cellules vides jusqu’à la première cellule non vide.
. Nombre maximum de cellules vides entre plusieurs cellules non vides.

Je joins un fichier explicatif

Merci par avance pour votre aide.
 

Pièces jointes

Bonjour à tous,

Pour l'écart final par formule:
Code:
=SI(SOMME($B3:$AK3)>0;COLONNE()-COLONNE(INDEX($B3:$AK3;EQUIV(9^9;$B3:$AK3;1)));COLONNE()-2)
Copier vers le bas
Concernant l'écart max(), pas encore trouvé.

JHA
 
Bonjour Tara-tata, bienvenue sur XLD, bonjour le forum,

Pour l'étude par lignes de ce fil j'ai modifié la solution VBA de sousou dans le 1er fichier joint :
Code:
Function EcartFinal%()
Application.Volatile
Dim c As Range, n%
Set c = Application.Caller
For n = 0 To c.Column - 3
    If c(1, -n) <> "" Then Exit For
Next
EcartFinal = n
End Function

Function EcartMax%()
Application.Volatile
Dim c As Range, n%, Ecart%
Set c = Application.Caller.Offset(, -1)
For n = 0 To c.Column - 3
    If c(1, -n) = "" Then Ecart = Ecart + 1
    If c(1, -n) <> "" Then EcartMax = IIf(Ecart > EcartMax, Ecart, EcartMax): Ecart = 0
Next
If EcartMax = 0 And c(1, 0) = "" Then EcartMax = n
End Function
Pour l'étude par colonnes que vous demandez voyez le 2ème fichier joint et le code adapté à cette transposition :
Code:
Function EcartFinal%()
Application.Volatile
Dim c As Range, n&
Set c = Application.Caller
For n = 0 To c.Row - 3
    If c(-n) <> "" Then Exit For
Next
EcartFinal = n
End Function

Function EcartMax%()
Application.Volatile
Dim c As Range, n&, Ecart&
Set c = Application.Caller.Offset(-1)
For n = 0 To c.Row - 3
    If c(-n) = "" Then Ecart = Ecart + 1
    If c(-n) <> "" Then EcartMax = IIf(Ecart > EcartMax, Ecart, EcartMax): Ecart = 0
Next
If EcartMax = 0 And c(0) = "" Then EcartMax = n
End Function
A+
 

Pièces jointes



Bonjour, merci beaucoup pour votre bienvenue et pour votre réponse mais je suis désolée, je ne comprends pas... dans la case, la formule marquée est "=EcartFinal()" et "=EcartMax()". Or, quand je rentre ça à la dernière ligne de la colonne concernée dans mon tableau et avec la colonne sélectionnée, ça me met "#NOM?". Quelle est la formule que je dois rentrer exactement ? Merci beaucoup. Je suis désolée, je ne m'y connais pas vraiment...
 
Bonsoir tout le monde
Comme d'habitude je suis un peu à la traine pour poster ma réponse (manque d’entrainement).
Voir en PJ une version avec 1 formule l'écart final 1 fonction pour l'écart max.

Un peu tard mais tant-pis

A bientôt
Alain
 

Pièces jointes

Dernière édition:
- 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

Réponses
3
Affichages
326
Réponses
2
Affichages
346
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…