Bonjour
La fonction VBA pourrait ressembler à cela :
' Compter dans une matrice (matCherhe) de cellules le chiffre devant une lettre designée par carTrouve
Function CompterSpecial(matCherche As Range, carTrouve As String)
Dim cel ' Cellule en curs pendnt le parcours de la matrice
Dim cpt ' compteur pour cumuler le chifre devant la lettre indiquée
cpt = 0 ' pour initialiser au depart à 0 (zero)
' Pour chaque cellule de la matrice
For Each cel In matCherche
' Si carTrouve est present dans la cellule
If InStr(cel, carTrouve) > 0 Then
' Augmenter le compteur du chifre situé a gauche de la lettre designee
cpt = cpt + Val(Mid(cel.Value, InStr(cel, carTrouve) - 1, 1))
End If
Next
CompterSpecial = cpt ' Mettre le compteur dans le retour de la fonction
End Function
Attention ! La fonction ne fonctionne que si devant la lettre il y a un chiffre (de 0 à 9) et pas un nombre !
Pour l'utiliser il faut la saisir comme une formule classique d'Excel dans une cellule avec les paramètres suivant
= CompterSpecial( cellule ou groupe de cellules pour la recherche ; le caractère à rechercher)
Exemple :
=CompterSpecial(A1:C1;"A")
pour rechercher dans la matrice allant en ligne 1 de la colonne 1 à 3 le caractère A
=CompterSpecial(A1:C3;"B")
pour rechercher dans la matrice de 3 lignes de 3 colonnes le caractère B