Compter une série de cellule avec texte

Résolu
rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Savez vous comment peut on compter le nombre de cellules consecutives contenant une même lettre dans le texte sur une plage horizontale?
Voici un exemple:
A-B-C-D-E-F-G-H-I-J-K-L-M
T-te-o-p-t-pe-o-p-pe-p-o-oe-t
Sachant qu il n'y a que 6 possiblilites de valeur dans la ligne( t,te,o,oe,p,pe) j'aimerais avoir en N2 la série la plus grande avec la lettre p, ici 3 puisqu il y a un p en colonne H, I et J.

Merci d'avance pour votre aide

10 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Comme ceci
    Public Function LgrEB(plage As Range, b As String)
    Dim lmanx As Long, k As Long, leb As Long, lebmax As Long, nbc As Long, s As String
    If plage.Rows.Count > 1 Then LgrEB = 0: Exit Function
    leb = 0
    lebmax = 0
    b = UCase(b)
    nbc = plage.Columns.Count
    For k = 1 To nbc
      s = plage.Cells(1, k)
      If s <> "" Then
        s = UCase(s)
        If InStr(1, s, b) = 0 Then
          leb = leb + 1
        Else
          If leb > lebmax Then lebmax = leb
          leb = 0
        End If
      End If
    Next k
    If leb > lebmax Then lebmax = leb
    LgrEB = lebmax
    End Function

    Cdlmnt
    2
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      C est parfait merci beaucoup
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Je ne sais pas si j'ai bien compris
    Une solution avec une macro
    http://www.cjoint.com/c/EIkm3ZmiFI4

    Cordialement
    2
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      Bonjour

      Je crois que ta solution macro est exactement ce que je recherche mais malheuresement je suis novice et n ai jamais fait de vba!
      Peux tu m expliquer en detail comment la saisir

      Merci bcp
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    1. Alt-F11 pour accéder à l'éditeur vba
    2. Insertion/Module pour créer le Module 1
    3. Coller tout le code dans ce module
    4. Retour à la feuille où la fonction LPLS(plage;texte) s'utilisera comme une fonction excel (dans ce fichier)

    Il faudra ensuite dire à excel d'accepter l'ouverture des macros
    Sous excel 2003 : Outils/Macro/Sécurité et choisir le niveau moyen
    Sous excel >=2007 : Bouton Microsoft Office/Options Excel/ Centre de gestion de la confidentialité/Paramètres du Centre de gestion de la confidentialité/ Paramètres des macros Et choisir l'option Désactiver toutes les macros avec notifications.
    Quitter excel et le redémarrer

    Cordialement
    2
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      bonjour
      tout d abord merci beaucoup pour ton aide, ça fonctionne plutôt bien mais il y quelque chose qui m échappe car j ai noté 3 exemple sur mon fichier ou la formule ne fonctionne pas correctement!
      je te mets le lien pour mon fichier
      https://www.cjoint.com/c/EInl1vg1oVQ
      j ai surligné en jaune les anomalies que j ai relevé
      merci encore
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    mais il y quelque chose qui m échappe car j ai noté 3 exemple sur mon fichier ou la formule ne fonctionne pas correctement!
    Exact, léger bug !
    http://www.cjoint.com/c/EInqYoAXgm6

    Cordialement
    2
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      merci merci merci bcp
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Essaies ceci
    http://www.cjoint.com/c/EIEn5ikPUxs

    Cdlmnt
    1
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      merci c est parfait
      j aurai juste besoin d une petite modification dans le cas ou j aurai des cellules vide!
      je ne veux compter que les cellules avec du texte sans la lettre choisie

      merci d avance
      0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Essaies ceci (merci à J.Boisgontier)
    =INDEX(A2:M2;MODE(SI(A2:M2<>"";EQUIV(A2:M2;A2:M2;0))))

    Cdlmnt
    0
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      salut ccm81
      merci pour ta reponse je l ai retapée a l identique mais le resultat est #valeur.
      peux tu me l expliquer etape par etape car je suis completement largué sur ce coup la

      merci
      0
    2. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      la formule fonctionne quand je la valide comme une formule matricielle, cependant le resultat me donne la valeur avec la plus gande serie en l occurrence p dans l exemple mais j aurais besoin du nombre de fois consecutive qu elle apparait!
      Et j aimerais pouvoir choisir la valeur don't je demande la serie la plus grande.
      si je reprend mon exemple, j aimerais pouvoir demandé la serie la plus grande de la lettre t par exemple, le resultat serait 2 puisqu il y a un t en colonne a et b

      merci beaucoup
      0
  8. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    Autre proposition en passant par des calculs intermédiaires (pas sûr que ça vous intéresse).
    https://www.cjoint.com/c/EIiowkdk8ib
    Cdlt
    0
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      bonjour

      merci quand meme mais effectivement ca ne m arrange de faire comme ceci car j ai beaucoup de lignes
      0
  9. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
     
    bonjour a tous

    j ai une question complémentaire, comment faire pour compter une serie tant qu on ne rencontre pas une lettre de notre choix?
    je m explique, dans l exemple de l ennoncé j aurais besoin de savoir quelle est la serie la plus longue tant que je ne rencontre pas la lettre t (ou te);
    la reponse serait ici 7 puisqu a partir de la colonne F nous avons une serie de valeur qui ne contient pas la lettre t jusqu en colonne L

    merci d avance
    0
  10. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Peux tu envoyer un bout de fichier avec quelques exemples et les résultats attendus

    Cdlmnt
    0
    1. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      Voici un exemple,

      N hesite pas si je ne suis pas clair et encore merci pour ton aide.

      https://www.cjoint.com/c/EIEmYE5cm1T
      0
    2. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      Bonjour,

      J ai une derniere question, comment peut on compter une serie s il y a un "e" ou s sil n y en a pas? Je m explique, sur l exemple du lien du 30 septembre de la personne a, combien de fois maximum j ai la lettre g qui apparait que si il n y pas de "e" dans la cellule; ici la reponse serait 10 car il y a 10 g consécutifs de la colonne j14 a la colonne j34!
      de la meme facon, j aimerais savoir combien de g consecutifs il y a si on ne prend en consideration les cellules avec des "e"; ici la reponse serait 3 (il y a 2 series de 3(colonne j12+j15+j17 ou j20+j22+j24))

      merci par avance
      0
  11. rorocr Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
     
    Bonjour,

    J ai une derniere question, comment peut on compter une serie s il y a un "e" ou s sil n y en a pas? Je m explique, sur l exemple du lien du 30 septembre de la personne a, combien de fois maximum j ai la lettre g qui apparait que si il n y pas de "e" dans la cellule; ici la reponse serait 10 car il y a 10 g consécutifs de la colonne j14 a la colonne j34!
    de la meme facon, j aimerais savoir combien de g consecutifs il y a si on ne prend en consideration les cellules avec des "e"; ici la reponse serait 3 (il y a 2 series de 3(colonne j12+j15+j17 ou j20+j22+j24))

    merci par avance
    0