Compter le nombre de caractère identique dans une textbox

Bonjour à tous,

Je recherche un moyen de compter le nombre de caractère identique dans une textbox.

Pour compter le nombre de caractère dans une chaine de caractère je connais la fonction Len, mais comment compter uniquement le nombre de répétions d'un seul caractère dans une chaine de caractère ?

en d'autres termes, l'équivalent de ceci : =NBCAR(A1)-NBCAR(SUBSTITUE(A1;"a";"")) en VBA.

Merci d'avance ;)

Re,

J'ai finalement trouvé la solution sur un autre site. La voici pour ceux que ça intéresse ;)

For j = 1 To Len(Me.TextBox1)
If Mid$(Me.TextBox1, j, 1) = "+" Then c = c + 1
Next

'Me.Textbox1 = la chaine de caractère
' "+" = le caractère recherché

Par contre je suis toujours à la recherche de comment afficher les résultats dans des cellules. Pour le moment je les affiches dans une MsgBox mais le but c'est de les inscrire dans des cellules.

Dans le fichier ci-joint :

Dans la textbox1 vous rentrez votre calcul (par exemple 1+2+3)

En cliquant sur le commandButton1 le résultat s'affiche dans la textbox2 ( en l'occurrence 6)

En cliquant sur le CommandButton2 des Msgbox font apparaitre tous les chiffres de la textbox1 ( en l'occurrence 3 Msgbox qui indique 1 puis 2 puis 3)

Le but est de ne plus avoir ces MsgBox mais l'inscription de chaque valeur dans une cellule. Sachant que dans l'exemple il y'a 3 chiffres mais ça peut être des nombres et il peut y'en avoir 30 comme 50, ....

Meri d'avance ;)

8test.xlsm (16.31 Ko)

Bonjour,

Si j'ai bien compris, vous voulez le résultat dans une cellule et non dans la TextBox. Votre macro pourrait se résumer à ceci:

Private Sub CommandButton2_Click()
     Range("A1").Value = Evaluate("=" & Me.TextBox1)
End Sub

Cdlt

Bonjour,

Pas tout à fait, dans votre solution le résultat du calcul renseigné dans la TextBox1 s'inscrit en A1

Ce que je voudrait c'est :

- Garder le résultat du calcul dans la Textbox2

- Que chaque chiffre du calcul s'inscrive dans une cellule.

A + ;)

Alors ceci,

mais comme vous ne donnez pas de suffisamment de précisions, j'ai tenu compte de ce que vous avez écrit, à savoir isoler le caractère +.

Et la question est : Quels seront en réalité tous les types de caractères à isoler?

En attendant, essayez ceci:

Private Sub CommandButton2_Click()
    Tabl = Split("+" & Me.TextBox1, "+")
    For k = 1 To UBound(Tabl)
        Cells(k, "A") = Tabl(k)
    Next
    Me.TextBox2 = Evaluate("=" & Me.TextBox1)
End Sub

Re,

C'est exactement cela !

Et la question est : Quels seront en réalité tous les types de caractères à isoler?

A ma connaissance seul le "+" est utilisé mais si cela est possible, c'est vrai qu'il serait plus prudent d'intégrer tous les symboles de calculs :

+

-

*

/

Merci pour votre aide ;)

Voilà pour tous les signes,

Private Sub CommandButton2_Click()
    Tabl = "$" & Replace(Replace(Replace(Replace(Me.TextBox1, "+", "$", 1), "-", "$"), "*", "$"), "/", "$")
    Tabl = Split(Tabl, "$")
    For k = 1 To UBound(Tabl)
        Cells(k, "A") = Tabl(k)
    Next
    Me.TextBox2 = Evaluate("=" & Me.TextBox1)
End Sub

Cdlt

Re,

Merci beaucoup !!

Au plaisir ;)

Rechercher des sujets similaires à "compter nombre caractere identique textbox"