Compte du nombre de caractères

  • Initiateur de la discussion Fredrennes
  • Date de début
F

Fredrennes

Guest
Bonjour,

Gros trou de mémoire.....quelle est la fonction qui permet de compter le nombre de chiffres contenus dans une cellule svp ?

Merci bcp

Bonne fin de journée

Cdlt

Fred
 
@

@+Thierry

Guest
Salut Fredrennes, le Forum

En Anglais c'est la formule "LEN" et en VBA aussi... Pour la formule en Français, je suis désolé je travaille en anglais.. Regarde à "CHAR" mais je ne suis pas formel... de mémoire... (ou encore a CAR... moins sûr)...

Bon App
@+Thierry
 
S

Sebb

Guest
Salut Fredrennes, @+Thierry

Mmmm Thierry, j'suis pas sûr que ce soit exactement ce qu'il demande
"LEN" compte le nombre de caractères, "CAR" renvoit un caractère en fonction de son code je crois ex: 34 = "
et "Char" me renvoit Ben Hur ... (sinon elle n'existe pas lol)
la fonction "NbCar" existe mais compte également les caractères
voici une chtite macro
a+
_____________________________________________________
Sub CompteCHiffres()
Dim expressionc, totcar, compteur As Byte
Dim expression As String
Dim car As Variant
'c'est parti
expression = InputBox("saisir l'expression")
totcar = Len(expression)
For compteur = 1 To totcar
car = Right(Left(expression, compteur), 1)
If IsNumeric(car) = True Then
expressionc = expressionc & car
End If
Next
MsgBox "" & Len(expressionc)
End Sub
 
S

Sebb

Guest
Re :)
Juste pour préciser que je ne compte que les chiffres et que je prends l'expression a partir de l'inputbox ...
ca serait plus simple d'en faire une fonction si tu fais référence à une cellule

Par contre je ne sais pas faire une fonction , à part le début
Public Function CompteChiffres ()
lol
...
merci à ceux qui passent d'essayer d'en faire une fonction (ca m'intéresse en plus !)
TchuSs
 
A

andré

Guest
Salut à vous,

Ou bien la question est mal posée, ou bien les réponses sont fausses !

"le nombre de chiffres contenus dans une cellule"

Pour la chaîne : AB32CD3 le nombre de caractères est bien égal à 7, mais le nombre de chiffres est égal à 3.

Je cherche une solution, par formule, mais je n'ai pas encore trouvé !

Ândré.
 
@

@+Thierry

Guest
Hellos les Gars !!

Merci Pascal, moi en tout cas je compatis avec les Italiens (!!!) et aussi avec les pauvres Francophones qui doivent apprendre tout en double les Fonctions !! Car (Car en français par en Formule, qui serait donc Chr en VBA et en version yankee ou british, et certaiment pas un autobus !! Lol)... Donc je disais, car il est pas évident de penser "Len" et de traduire NBCAR !

Enfin comme çà Fredrennes aura les deux versions ...

Pour Sebb, oui on parle bien de "len" et j'avais émi les réserves d'usage (déposées chez mon avocat Maïtre VébéHa) en ce qui concernait mon incertitude quant à CHAR et CAR , car (toujours pas l'autobus sinon vous l'avez raté !!!) je ne travaille qu'en version US de windows, office et de tous les programmes.

Toujours pour Sebb, çà donnerait ceci :

Public Function CompteNumericDigit(ByRef Cell As Range)
Dim Expression As String, ExpressionC As String
Dim TotCar As Byte
Dim Compteur As Byte
Dim Car As String
Application.Volatile

Expression = Cell.Value
TotCar = Len(Expression)
For Compteur = 1 To TotCar
Car = Right(Left(Expression, Compteur), 1)
If IsNumeric(Car) = True Then
ExpressionC = ExpressionC & Car
End If
Next
CompteNumericDigit = Len(ExpressionC)
End Function


Il suffirait de taper dans une cellule : =CompteNumericDigit(A1)
(Pour autant que c'est A1 qui contient la valeur Alpha/Numérique...

Pour mon compatriote Ândré, je ne connais pas de Function standard...

Bon Aprèm
@+Thierry
 
A

andré

Guest
Resalut,

Eh bien, puisqu'il le faut, ci-dessous une formule qui donne le résultat escompté, mais ... je n'en suis pas fier (du tout).
Le problème est que dans l'alpha numérique Excel considère les chiffres comme du texte, et que le nombre d'arguments dans une formule est limité à 7.

=NBCAR(A1)*2-GAUCHE(NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;);2;);3;);4;);5;))&NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;6;);7;);8;);9;);0;));1)-DROITE(NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;);2;);3;);4;);5;))&NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;6;);7;);8;);9;);0;));1)

Comme quoi le VBA est parfois plus rapide !

Là-dessus il me faut quelque chose pour digérer (lol), avant de devoir subir les remontrances de mon compatriote.
Ândré.
 
S

Sebb

Guest
Rerere :)
@+Thierry j'ai pris rdv avec ton na-veau-cas pour vérifier ... :)

Merci pour la traduction en fonction, peux tu m'expliquer ceci ?

Application.Volatile <== C'est pour le tir au pigeon ?

André ? es-tu allergique aux fonctions personnalisées ? haha :)
 
@

@+Thierry

Guest
Re à tous,

Hi hi Ândré si on se descend une Duvel (Verte) à chaque Substitute, moi çà me va comme Fonction (sauf qu'après on va se substituer une bonne cuite !!!)

Pour Sebb, Application Volatile : en Direct de ma touche [F1] : "A volatile function must be recalculated whenever calculation occurs in any cells on the worksheet. A nonvolatile function is recalculated only when the input variables change".

Ce qui signifie que c'est assez important d'y penser quand on se fait des Fonctions Perso... Car sinon le mode Calculation Auto d'Excel ne déclenchera la Fonction que lors d'un changement dans la cellule concernée.

Bon Aprèm
@+Thierry
 
S

Sebb

Guest
Re² x Re² !

Quel talent ce @+Thierry !
(dommage qu'il supporte les croates ...) ^^

Merci pour l'info ! (pour les anglophobes je précise qu'avec cette "volatilité",
la fonction est recalculée des lors qu'un calcul est effectué dans une quelconque cellule du classeur)
Donc pas de risque de se faire surprendre par un pigeon ... ouf !


Dites-donc à force de boire des Duvel faudrait peut-être penser aux copains ! ...euh à votre foie je veux dire ...
0:)
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 497
Membres
103 562
dernier inscrit
soso21