Compter à l'interieur d'une chaine [VBA Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 25-10-2007 à 10:01:59
À ma connaissance aucune fonction ne fait ça directement.
Mais ça peut facilement se faire.
Si tu sais quels caractères sont à dénombrer, il suffit, pour chacun d'eux, de faire :
nb = Len(chaine) - Len(Replace(chaine, car_a_denombrer, "" )) |
Marsh Posté le 26-10-2007 à 00:38:49
si tu met tes caracteres sous excel je sais comment faire mais sinon non dsl
Marsh Posté le 26-10-2007 à 00:41:32
ah mais comment tu fais pour avoir tout ça dans une meme cellulle? separe chaque caractere pour une cellule. J'ai appris a faire ça la semaine dernier, je parle de lalgo et du vba pour compter ça, sauf que nous cetait les bases de l'adn
Marsh Posté le 26-10-2007 à 08:10:33
Bonjour,
Ce bout de code te permet de compter le nombre de fois où "ValACompter" se trouve dans ta chaine "MaVal"
MaVal = Cells(ValLigne,ValColonne)
MonRes = Split(MaVal, ValACompter)
MsgBox UBound(MonRes)
Marsh Posté le 26-10-2007 à 15:39:56
Public Function nbOccurences(car As String, chaine As String) As Integer
Dim i As Integer, res As Integer
res = 0
For i = 1 To Len(chaine)
If Mid(chaine, i, 1) = car Then
res = res + 1
End If
Next
nbOccurences = res
End Function
cadeau !
à insérer dans un module, tu pourras appeller directement la fonction depuis une feuille Excel
(par exemple, en B1 : =nbOccurences("a";A1) )
Marsh Posté le 25-10-2007 à 09:44:49
Bonjour,
j'ai un petit soucis.
J'ai une longue chaine de caracteres (alphanumeriques) et je dois compter le nombre de certains caracteres precis.
Est-ce-qu'il y a une fonction directe qui fait ca ? ou est-ce-que je dois passer par des macros (aide bienvenue) ?.
Exemple:
Ma cellule contient:
1161071111611111199619996909691110000AAAAAAAAAAAAAAAAAAAAAAAAAAA191919109091591111111111919199
Et je dois trouver le nombre de 1 et le nombre de 2 à l'interieur de celle ci.
Message édité par Fami le 25-10-2007 à 09:45:00