XL 2010 Compter COL. Vid, 1 seul et+

Imotep44

XLDnaute Nouveau
Bonsoir,

Je vous poste ce message pour vous demander de m'aider dans mon fichier pour les
questions suivantes :

1e question, je veux compter dans un tableau remplis de chiffre
- le nombre de colonne vide, de colonne avec 1 seul chiffre et de colonne avec 2 chiffres ou plus.

2e question, si c'est possible de déterminer le max de "suite" (2 colonnes et + en contigus) des colonnes
vides, 1 nombre et de 2 nombre+

Merci à vous
 

Pièces jointes

  • Compter COL. Vid, 1 n° et +.xlsx
    11.7 KB · Affichages: 24

riton00

XLDnaute Impliqué
Bonjour

Réponse première question
1e question, je veux compter dans un tableau remplis de chiffre
- le nombre de colonne vide, de colonne avec 1 seul chiffre et de colonne avec 2 chiffres ou plus.

Nombre de ligne vide =NB.VIDE(B5:R5) puis tirer vers le bas
Nombre de 1 chiffre =NB.SI(B5:R5;">=1")-NB.SI(B5:R5;">=10") puis tirer vers le bas
Nombre de 2 chiffres =NB.SI(B5:R5;">=10")-NB.SI(B5:R5;">=1000") puis tirer vers le bas

Slts
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Imotep44, riton00,

Voyez le fichier joint et ces 2 fonctions VBA relativement simples :
Code:
Function CompteColonne(R As Range, n)
For Each R In R.Columns
    If Application.CountA(R) = n Then CompteColonne = CompteColonne + 1
Next
End Function

Function SuiteMax(R As Range, n)
Dim a(), i%
ReDim a(1 To R.Columns.Count)
If Application.CountA(R.Columns(1)) = n Then a(1) = 1
For i = 2 To UBound(a)
    If Application.CountA(R.Columns(i)) = n Then a(i) = a(i - 1) + 1
Next
SuiteMax = Application.Max(a)
If SuiteMax = 1 Then SuiteMax = 0
End Function
A+
 

Pièces jointes

  • Compter COL. Vid, 1 n° et +(1).xlsm
    27.3 KB · Affichages: 13

job75

XLDnaute Barbatruc
Re,

Dans ce fichier (2) j'ai complété le cas n = 2 quand il y a plus de 2 nombres dans une colonne :
Code:
Function CompteColonne(R As Range, n)
For Each R In R.Columns
    If Application.CountA(R) = n Then CompteColonne = CompteColonne + 1
    If n = 2 Then If Application.CountA(R) > n Then CompteColonne = CompteColonne + 1
Next
End Function

Function SuiteMax(R As Range, n)
Dim a(), i%
ReDim a(1 To R.Columns.Count)
If Application.CountA(R.Columns(1)) = n Then a(1) = 1
If n = 2 Then If Application.CountA(R.Columns(1)) > n Then a(1) = 1
For i = 2 To UBound(a)
  If Application.CountA(R.Columns(i)) = n Then a(i) = a(i - 1) + 1
  If n = 2 Then If Application.CountA(R.Columns(i)) > n Then a(i) = a(i - 1) + 1
Next
SuiteMax = Application.Max(a)
If SuiteMax = 1 Then SuiteMax = 0
End Function
Edit : pour la fonction SuiteMax il manquait la 5ème ligne, j'ai corrigé.

A+
 

Pièces jointes

  • Compter COL. Vid, 1 n° et +(2).xlsm
    27.5 KB · Affichages: 8
Dernière édition:

Imotep44

XLDnaute Nouveau
Bonsoir Job75,
J'ai une nouvelle requête sur la question "colonne de suite" pour 2 nombres et+ (2e question dans le fichier) :

A) Partie en jaune : J'aimerais distinguer 2nb et + avec 2 nombres, 3nb lorsque c'est une plage de 3 lignes (L5 à L7), ensuite y ajouter
4nb lorsque c'est une plage de 4 lignes (L5 à L8), ensuite y ajouter 5nb pour 5 lignes (L5 à L9) etc...

B) Partie en vert : La même question mais en prenant en compte les nombres qui sont en contigus sur les cellules
(à la verticale donc).

Voir tableau
merci pour votre aide précieuse
bonne nuit
 

Pièces jointes

  • Compter COL. Vid, 1 n° et +(3).xlsm
    21.2 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonjour Imotep44, le forum,

Je viens de corriger mon post #7 : il manquait la 5ème ligne de la fonction SuiteMax.

Pour vos problèmes A) et B) voyez ce fichier (3) et les fonctions SuiteMaxBis et SuiteMaxContigu, cette dernière utilise la fonction MaxContigu.

Une remarque pour terminer : toutes mes solutions fonctionnent avec des nombres ou des textes dans le tableau source mais il faut s'assurer qu'il n'y a pas d'espaces dans les cellules (commande Rechercher).

Bonne journée.
 

Pièces jointes

  • Compter COL. Vid, 1 n° et +(3).xlsm
    32.7 KB · Affichages: 19

Discussions similaires