compter les membres d'une formule

Le
Proust Michel
bonjour
est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1
merci pour les infos
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4315071
Bonjour,

Dans un module:

Function NbOccur(c As Range)
NbOccur = UBound(Split(c.Formula, "+")) + 1
End Function

En B1: NbOccur(A1)

JB

On 1 avr, 17:26, "Proust Michel"
bonjour
est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1
merci pour les infos


MichDenis
Le #4315061
Dans un module standard, tu copies ceci :

'------------------
Function NbChar(Rg As Range, Symbole As String)
NbChar = UBound(Split(Rg.Formula, Symbole)) + 1
End Function
'------------------

Et dans la cellule où tu veux avoir le résultat du nombre de membres

=NbChar(AdresseContenantLaFormule; "+")





"Proust Michel"
bonjour
est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1
merci pour les infos
Proust Michel
Le #4314441
merci pour vos réponse mais est-on obligé de passer par un module en VB
Peut on accéder au contenu d'une cellule (3+234+345+456+567) ou au
résultat (1725) comme cela est possible avec la fonction
Rechercher/Remplacer

"Proust Michel"
bonjour
est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1
merci pour les infos



JB
Le #4314421
Bonjour,

Pour afficher la formule, il faut également du VBA:

Function afficheFormule(f)
afficheFormule = f.Formula
End Function

Si on veut remplacer 3+56+88+.. par le résultat, utiliser Copier/
Collage spécial/Valeur

JB


On 2 avr, 12:40, "Proust Michel"
merci pour vos réponse mais est-on obligé de passer par un module en VB
Peut on accéder au contenu d'une cellule (3+234+345+456+567) ou au
résultat (1725) comme cela est possible avec la fonction
Rechercher/Remplacer

"Proust Michel"



bonjour
est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1
merci pour les infos- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Modeste
Le #4314361
Bonsour® Proust Michel avec ferveur ;o))) vous nous disiez :

est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1


pour ne pas utiliser VBA, il faut préalablement creer une fonction Excel 4

sans se proéccuper du contenu des cellules...
se positionner en B1
Menu Insertion > Nom > definir
Nom dans le classeur : Formule
fait réference à : =LIRE.CELLULE(41;A1)
on a ainsi créé une fonction qui renvoie la formule se trouvant dans la cellule
immédiatement à gauche

utilisation en C3 : 3+234+345+456+567 affichage : 1725
en D3 = formule affichage : 3+234+345+456+567

pour ta question en supposant qu'on n'utilise que le signe "+"
alors :
A1 j'ai la formule 3+234+345+456+567
en B1 : =1+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"+";""))

;o)))
si on utilise un panachage de signes (+-*/)
=1+(NBCAR(formel)-NBCAR(SUBSTITUE(formule;"+";"")))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"-";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"/";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"*";""))




--
--
@+
;o)))

Proust Michel
Le #4312871
merci je vais essayer car la solution me semble parfaite
"Modeste" %
Bonsour® Proust Michel avec ferveur ;o))) vous nous disiez :

est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1


pour ne pas utiliser VBA, il faut préalablement creer une fonction Excel 4

sans se proéccuper du contenu des cellules...
se positionner en B1
Menu Insertion > Nom > definir
Nom dans le classeur : Formule
fait réference à : =LIRE.CELLULE(41;A1)
on a ainsi créé une fonction qui renvoie la formule se trouvant dans la
cellule immédiatement à gauche

utilisation en C3 : 3+234+345+456+567 affichage : 1725
en D3 = formule affichage : 3+234+345+456+567

pour ta question en supposant qu'on n'utilise que le signe "+"
alors :
A1 j'ai la formule 3+234+345+456+567
en B1 : =1+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"+";""))

;o)))
si on utilise un panachage de signes (+-*/)
=1+(NBCAR(formel)-NBCAR(SUBSTITUE(formule;"+";"")))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"-";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"/";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"*";""))




--
--
@+
;o)))





Proust Michel
Le #4312721
le résultat est OK pour moi
Q complémentaires
1 pourquoi on ne peut pas mettre LIRE.CELLULE(...) dans une cellule ?
2 où trouver la signification du premier paramètre (41 dans ton
exemple) ?
3 où trouver la liste (et le mode d'emploi) des autres fonctions
cachées si il en existe ?
d'avance merci pour les infos

"Modeste" %
Bonsour® Proust Michel avec ferveur ;o))) vous nous disiez :

est-il possible de faire la chose suivante et si oui comment ?
dans A1 j'ai la formule 3+234+345+456+567
dans B1 je voudrais avoir 5 qui correspond au nombre de membres de la
formule de A1


pour ne pas utiliser VBA, il faut préalablement creer une fonction Excel 4

sans se proéccuper du contenu des cellules...
se positionner en B1
Menu Insertion > Nom > definir
Nom dans le classeur : Formule
fait réference à : =LIRE.CELLULE(41;A1)
on a ainsi créé une fonction qui renvoie la formule se trouvant dans la
cellule immédiatement à gauche

utilisation en C3 : 3+234+345+456+567 affichage : 1725
en D3 = formule affichage : 3+234+345+456+567

pour ta question en supposant qu'on n'utilise que le signe "+"
alors :
A1 j'ai la formule 3+234+345+456+567
en B1 : =1+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"+";""))

;o)))
si on utilise un panachage de signes (+-*/)
=1+(NBCAR(formel)-NBCAR(SUBSTITUE(formule;"+";"")))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"-";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"/";""))+NBCAR(formule)-NBCAR(SUBSTITUE(formule;"*";""))




--
--
@+
;o)))





Modeste
Le #4277231
Bonsour® Proust Michel avec ferveur ;o))) vous nous disiez :

le résultat est OK pour moi
;o)))


1 pourquoi on ne peut pas mettre LIRE.CELLULE(...) dans une cellule ?
parce que ce n'est pas une fonction de cellule mais une fonction de Macro Excel

4 , "" l'ancetre de VBA ""
on peut cependant inserer une feuille macro xL4, dans les cellules de laquelle
on peut ecrire ce genre d'instruction
mais il faudra alors ré-apprendre tout le langage correspondant ;o)))
ceci est l'apanage des dinosaures ,o)))

2 où trouver la signification du premier paramètre (41 dans ton
exemple) ?
41 : renvoie la formule de la cellule active sans la convertir

la fonction LIRE.CELLULE accepte 52 valeurs differentes pour le 1er parametre
voir autres réponses ci-dessous

3 où trouver la liste (et le mode d'emploi) des autres fonctions
cachées si il en existe ?
dans la doc EXCEL 4 : 0492 ref N° 29696F (un bouquin de 700 pages !!!)


une approche trés succinte : http://www.gaboly.com/XLM/index.html
un peu d'histoire là : http://xlbysteph.free.fr/aideinformatique/xlall.htm

des pistes de recherches pour la doc EXCEL 4 :
http://www.planatechsolutions.com/xllplus-online/tech_XLM4Ref.htm
http://support.microsoft.com/kb/109976
--
--
@+
;o)))

Proust Michel
Le #4276871
comme disait ma Maman "Modeste et Compétent"
merci pour les infos
"Modeste"
Bonsour® Proust Michel avec ferveur ;o))) vous nous disiez :

le résultat est OK pour moi
;o)))


1 pourquoi on ne peut pas mettre LIRE.CELLULE(...) dans une cellule
?
parce que ce n'est pas une fonction de cellule mais une fonction de Macro

Excel 4 , "" l'ancetre de VBA ""
on peut cependant inserer une feuille macro xL4, dans les cellules de
laquelle on peut ecrire ce genre d'instruction
mais il faudra alors ré-apprendre tout le langage correspondant ;o)))
ceci est l'apanage des dinosaures ,o)))

2 où trouver la signification du premier paramètre (41 dans ton
exemple) ?
41 : renvoie la formule de la cellule active sans la convertir

la fonction LIRE.CELLULE accepte 52 valeurs differentes pour le 1er
parametre
voir autres réponses ci-dessous

3 où trouver la liste (et le mode d'emploi) des autres fonctions
cachées si il en existe ?
dans la doc EXCEL 4 : 0492 ref N° 29696F (un bouquin de 700 pages !!!)


une approche trés succinte : http://www.gaboly.com/XLM/index.html
un peu d'histoire là : http://xlbysteph.free.fr/aideinformatique/xlall.htm

des pistes de recherches pour la doc EXCEL 4 :
http://www.planatechsolutions.com/xllplus-online/tech_XLM4Ref.htm
http://support.microsoft.com/kb/109976
--
--
@+
;o)))





Publicité
Poster une réponse
Anonyme