Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3105 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel]Compter à l'interieur d'une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Excel]Compter à l'interieur d'une chaine

n°1630667
Fami
Posté le 25-10-2007 à 09:44:49  profilanswer
 

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
mood
Publicité
Posté le 25-10-2007 à 09:44:49  profilanswer
 

n°1630692
tegu
Posté le 25-10-2007 à 10:01:59  profilanswer
 

À 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, "" ))

n°1631279
noirdez74
Posté le 26-10-2007 à 00:38:49  profilanswer
 

si tu met tes caracteres sous excel je sais comment faire mais sinon non dsl

n°1631280
noirdez74
Posté le 26-10-2007 à 00:41:32  profilanswer
 

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:'(

n°1631293
Paul Hood
Posté le 26-10-2007 à 08:10:33  profilanswer
 

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)

n°1631791
devil_k
Posté le 26-10-2007 à 15:39:56  profilanswer
 

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) )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel]Compter à l'interieur d'une chaine

 

Sujets relatifs
[VBA EXCEL] Problème avec partage de classeur !!Limiter la selection dans excel
Intégration d'une fenêtre excel dans une appli MFC sous Visual 2005[VBA Excel] Appliquer couleur sur une partie de chaine
enregistre une feuille excelincrementation de cellules sous excel via VB
[résolu]control ACCESS et VBA 
Plus de sujets relatifs à : [VBA Excel]Compter à l'interieur d'une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR