Modifier une fonction (de job75) pour compter des valeurs consécutives...

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide afin d'adapter une fonction (de job75)...

Cette fonction compte des valeurs consécutives...ici "CA" =compte($D13:$AH13;"CA")
Comment faire pour compter des "CA" numérotés ?. type CA1, CA2 ect

voir fichier

Merci pour votre aide.
Bien à vous,
Christian


Function compte(r As Range, s$, Optional tf As Boolean = True)
Application.Volatile 'selon le besoin…
Dim tmp&, oCel As Range
For Each oCel In r
If oCel.Text <> "RH" And oCel.Text <> "F" Then
tmp = (Not IsEmpty(oCel)) * (tmp + 1) * ((oCel.Text = s) = tf)
compte = compte - (tmp > compte)
End If
Next
End Function
 

Pièces jointes

Dernière édition:
Re : Modifier une fonction (de job75) pour compter des valeurs consécutives...

Bonjour Christian,

A priori il suffit de modifier la fonction comme ceci :
Code:
Function compte(r As Range, s$, Optional tf As Boolean = True)
Application.Volatile 'selon le besoin…
Dim tmp&, oCel As Range
  For Each oCel In r
    If oCel.Text <> "RH" And oCel.Text <> "F" Then
      tmp = (Not IsEmpty(oCel)) * (tmp + 1) * (oCel.Text Like s & "*" = tf)
      compte = compte - (tmp > compte)
    End If
  Next
End Function
et de tirer AH12 vers le bes bien sûr.

A+
 
Re : Modifier une fonction (de job75) pour compter des valeurs consécutives...

Re,

Bien voir cependant qu'avec la solution précédente, si l'on recherche les séries de "1", la fonction ne fera pas de différence entre les cellules contenant "1", "10", "11" ou "1x"...

A+
 
Re : Modifier une fonction (de job75) pour compter des valeurs consécutives...

Re,

Compte tenu de la remarque de mon post #3, on peut introduire le 3ème argument facultatif exact :
Code:
Function compte(r As Range, s$, Optional exact As Boolean = False, Optional tf As Boolean = True)
Application.Volatile 'selon le besoin…
Dim tmp&, oCel As Range
  For Each oCel In r
    If oCel.Text <> "RH" And oCel.Text <> "F" Then
      tmp = (Not IsEmpty(oCel)) * (tmp + 1) * (oCel.Text Like s & IIf(exact, "", "*") = tf)
      compte = compte - (tmp > compte)
    End If
  Next
End Function
Si donc on veut une correspondance exacte avec "CA" on entrera en AI12 :
Code:
=compte(D12:AH12;"CA";VRAI)
sinon :
Code:
=compte(D12:AH12;"CA")
A+
 
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
1
Affichages
2 K
Retour