Compter le nombre de lettres A,B,C,D....... Z dans une plage de cellules

Bonjour

Merci a Wanadoo d'avoir transmis un code qui me convient. Mais il compte la lettre "A" (par exemple) uniquement sur la cellule A2.

J'aimerai que cela se fasse sur une plage de cellules. Mais comment l’écrire? le nombre de ligne sera de 35 et un calcule sur 4 colonnes , avec un résultat sur 4 colonnes différents. Comme sur le fichier.

Merci et bien a vous.

Bonjour Nico77 et bienvenue sur ce forum

Selon votre fichier déposé, voici le code à utiliser

Sub CompteLettre()
  Dim Col As Long, dLig As Long, Ind As Long
  Dim Mot As String
  Dim RngMots As Range, CelMot As Range, RngLettres As Range, CelLet As Range
  For Col = 1 To 13 Step 4
    Set RngMots = Range(Cells(2, Col), Cells(37, Col))
    Set RngLettres = Range(Cells(2, Col + 1), Cells(37, Col + 1))
    RngLettres.Offset(0, 1).ClearContents
    For Each CelLet In RngLettres
      For Each CelMot In RngMots
        Mot = CelMot.Value
        If Mot = "" Then GoTo SuiteMot
        For Ind = 1 To Len(Mot)
          If Mid(Mot, Ind, 1) = CelLet Then
            CelLet.Offset(0, 1) = CelLet.Offset(0, 1) + 1
          End If
        Next Ind
SuiteMot:
      Next CelMot
    Next CelLet
  Next Col
End Sub

A+

bonjour Nico77, salut JExcel2fr,

avec une simple fonction (n'est pas sensible aux majuscules et minuscules !!!)

Function f_Comptage(Mot, Lettres)
     Dim Arr1, Arr2, i, r, s
     Arr1 = Lettres.Value2
     ReDim Arr2(1 To UBound(Arr1), 1 To 1)
     For i = 1 To Len(Mot)
          r = Application.IfError(Application.Match(Mid(Mot, i, 1), Arr1, 0), 0)
          If r > 0 Then Arr2(r, 1) = Arr2(r, 1) + 1
     Next
     f_Comptage = Arr2
End Function

Bonjour à tous,

Ci-après une solution sans vba :

8compte-lettre.xlsx (13.67 Ko)

Utilisant des formules comme suit :

=SOMMEPROD(NBCAR(F:F) - NBCAR(SUBSTITUE(F:F; B5; "")))

"F:F" a adapter suivant la plage souhaitée.

Bonne journée

Rechercher des sujets similaires à "compter nombre lettres plage"