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 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 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+


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...
 
- 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
Retour