Compteur de cellule consécutive "lot accepté"

  • Initiateur de la discussion Initiateur de la discussion Alxlefou
  • Date de début Date de début

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 !

A

Alxlefou

Guest
Bonjour à tous,

Je recherche une macro ou une formule me permettant de compter les cellules consécutivent nommées "Lot accepté" d'une même ligne et de m'afficher dans une cellule le nbr max. trouvé.

Ci-joint un fichier excel comme exemple.

Par avance merci

Alexandre
 

Pièces jointes

Re : Compteur de cellule consécutive "lot accepté"

Hello le forum et à toi, alxlefou,

Pour ton fichier-exemple :

- Dans la cellule J2 =NB.SI(B2:I2;"Lot accepté")-NB.SI(B2:I2;"Lot refusé")
>> ce qui te donnera un résultat de 4,

- Dans la cellule J8 =MAX(NB.SI(B2:I2;"Lot accepté"))
>> ce qui te donnera un résultat de 5,

Cela te convient-il ?

A plus.
 
Re : Compteur de cellule consécutive "lot accepté"

Salut ralph45,

Merci pour ta réponse.

J'utilise déjà la formule =NB.SI(B2:I2;"Lot accepté")-NB.SI(B2:I2;"Lot refusé")
Mais elle est trop approximative.

Je m'explique :

Après 5 livraisons conforme consécutives soit 5 "Lot accepté" sur ma ligne, je dois changé le statut de ma référence (1 ligne/référence)
si j'ai "4 Lot accepté/1 refusé/4 lot accepté" la formule =NB.SI(B2:I2;"Lot accepté")-NB.SI(B2:I2;"Lot refusé") donne 7
alors que je n'ai que 4 livraisons conformes consécutives donc pas de changement de statut car il manque encore une livraison conforme.
Je crois que je suis dans l'impasse si j'utilise des formules et je ne maitrise pas du tout le VBA ...

Merci

Alx
 
Re : Compteur de cellule consécutive "lot accepté"

Bonjour,

Alors une fonction VBA (Alt+F11) :

Code:
Function MAXCONSECUT&(plage, repere$)
Dim p, t$, s, i&
If plage.Count > 1 Then plage = plage 'matrice (plus rapide)
For Each p In plage
  If p <> "" Then t = t & IIf(p = repere, 1, " ")
Next
t = Application.Trim(t) 'fonction SUPPRESPACE
s = Split(t) 'l'espace est le séparateur par défaut
For i = 0 To UBound(s)
  MAXCONSECUT = Application.Max(MAXCONSECUT, Len(s(i)))
Next
End Function
Elle est utilisée dans la cellule J2 (fichier joint).

Pas très facile à comprendre si l'on débute en VBA.

Voir déjà la fonction Split dans l'aide VBA.

A+
 

Pièces jointes

Re : Compteur de cellule consécutive "lot accepté"

Bonjour à tous,

Job75,

Merci de ton code VBA cela fonctionne parfaitement maintenant il faut que je prenne le temps de me pencher dessus pour le déchiffrer.
Par contre j'ai un soucis, dans ma feuille de calcul ce n'est pas des cellules vide mais des cellules=#n/a suite à une RECHERCHEV.
Un mise en forme conditionnelle avait été mise dessus et du coup j'ai cru que la cellule était vide mais ce n'est pas le cas.

Du coup, le fonction de ton code me donne #Valeur.

Comment je peux m'en sortir ?

Merci de votre aide.
 
Re : Compteur de cellule consécutive "lot accepté"

Bonjour Alxlefou,

Dans la boucle, il suffit d'ajouter un 1er test pour les valeurs d'erreur :

Code:
Function MAXCONSECUT&(plage, repere$)
Dim p, t$, s, i&
If plage.Count > 1 Then plage = plage 'matrice (plus rapide)
For Each p In plage
  If Not IsError(p) Then
    If p <> "" Then t = t & IIf(p = repere, 1, " ")
  End If
Next
t = Application.Trim(t) 'fonction SUPPRESPACE
s = Split(t) 'l'espace est le séparateur par défaut
For i = 0 To UBound(s)
  MAXCONSECUT = Application.Max(MAXCONSECUT, Len(s(i)))
Next
End Function
Fichier joint avec #N/A en C2.

A+
 

Pièces jointes

Re : Compteur de cellule consécutive "lot accepté"

Bonjour à tous,

Merci pour vos réponses et votre réactivité.
J'utilise le code VBA avec le test If Not IsError(p) Then
La solution de hoerwind fonctionne sauf dans le cas ou ma ligne commence par un #n/a.

A bientôt sur le forum et encore merci.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
697
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
318
Retour