XL 2016 Compter des cellules vides selon critères

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

  • NB_Cel_Vides.xlsm
    17.9 KB · Affichages: 45

job75

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

  • NB_Cel_Vides_Lignes(1).xlsm
    27.2 KB · Affichages: 12
  • NB_Cel_Vides_Colonnes(1).xlsm
    26.8 KB · Affichages: 16

Tara-tata

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

AtTheOne

XLDnaute Impliqué
Supporter XLD
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

  • Copie de NB_Cel_Vides.xlsm
    20.6 KB · Affichages: 0
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 754
Membres
101 812
dernier inscrit
trufu