Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Christine,
c'est possible avec une fonction personnalisé,
Function CompteEntiers(formule As Range) For i = 1 To Len(formule.Formula) If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _ CompteEntiers = CompteEntiers + 1 Next End Function
isabelle
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de v aleur dans cette formule? Normalement, la réponse devrait me donner (3) en tiers.
Merci Christine
bonjour Christine,
c'est possible avec une fonction personnalisé,
Function CompteEntiers(formule As Range)
For i = 1 To Len(formule.Formula)
If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _
CompteEntiers = CompteEntiers + 1
Next
End Function
isabelle
Bonjour à tous,
Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de v aleur
dans cette formule? Normalement, la réponse devrait me donner (3) en tiers.
Function CompteEntiers(formule As Range) For i = 1 To Len(formule.Formula) If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _ CompteEntiers = CompteEntiers + 1 Next End Function
isabelle
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de v aleur dans cette formule? Normalement, la réponse devrait me donner (3) en tiers.
Merci Christine
isabelle
oui, mais rien n'empêche d'y ajouter des conditions pour éliminer ces inconvénients ;-)
isabelle
Bonsoir Isabelle,
Cela ne marche que dans les cas les plus simples :
Si on insère des espaces, pour améliorer la lisibilité, chaque es pace est considéré comme un entier :
Si la cellule testée contient :
+ 5
la fonction renvoie 4 ;-))
Également des problèmes avec les valeurs non entières ; avec cett e formule :
+5,8 (la virgule étant le séparateur décimal)
la fonction renvoie 3.
Ce genre d'évaluation est souvent + complexe que ce que laisse croire la 1ère impression ;-(((
bonjour Christine,
c'est possible avec une fonction personnalisé,
Function CompteEntiers(formule As Range) For i = 1 To Len(formule.Formula) If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _ CompteEntiers = CompteEntiers + 1 Next End Function
isabelle
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3 ) entiers.
Merci Christine
-- Cordialement,
Michel Gaboly http://www.gaboly.com
oui, mais rien n'empêche d'y ajouter des conditions pour éliminer ces
inconvénients ;-)
isabelle
Bonsoir Isabelle,
Cela ne marche que dans les cas les plus simples :
Si on insère des espaces, pour améliorer la lisibilité, chaque es pace est
considéré comme un entier :
Si la cellule testée contient :
=12 + 5
la fonction renvoie 4 ;-))
Également des problèmes avec les valeurs non entières ; avec cett e formule :
=12+5,8
(la virgule étant le séparateur décimal)
la fonction renvoie 3.
Ce genre d'évaluation est souvent + complexe que ce que laisse croire la 1ère impression ;-(((
bonjour Christine,
c'est possible avec une fonction personnalisé,
Function CompteEntiers(formule As Range)
For i = 1 To Len(formule.Formula)
If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _
CompteEntiers = CompteEntiers + 1
Next
End Function
isabelle
Bonjour à tous,
Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur
dans cette formule? Normalement, la réponse devrait me donner (3 ) entiers.
oui, mais rien n'empêche d'y ajouter des conditions pour éliminer ces inconvénients ;-)
isabelle
Bonsoir Isabelle,
Cela ne marche que dans les cas les plus simples :
Si on insère des espaces, pour améliorer la lisibilité, chaque es pace est considéré comme un entier :
Si la cellule testée contient :
+ 5
la fonction renvoie 4 ;-))
Également des problèmes avec les valeurs non entières ; avec cett e formule :
+5,8 (la virgule étant le séparateur décimal)
la fonction renvoie 3.
Ce genre d'évaluation est souvent + complexe que ce que laisse croire la 1ère impression ;-(((
bonjour Christine,
c'est possible avec une fonction personnalisé,
Function CompteEntiers(formule As Range) For i = 1 To Len(formule.Formula) If Not IsNumeric(Mid(formule.Formula, i, 1)) Then _ CompteEntiers = CompteEntiers + 1 Next End Function
isabelle
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3 ) entiers.
Merci Christine
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Frédéric Sigonneau
Bonsoir,
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement de rappeler qu'il en fait une promo intensive :), tu peux construire une petite fonction perso de ce style :
'===================== Function NbNombres(S) Dim tmp$ If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S tmp = MultiSubstitute(tmp, "+-/*", "____") NbNombres = UBound(Split(tmp, "_")) + 1 End Function
Function MultiSubstitute(InputStr As String, _ ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr) len_ByChars = Len(ByChars) For i = 1 To len_Input S = Mid(InputStr, i, 1) anOffset = InStr(ToBeReplacedChars, S) If anOffset > 0 Then If anOffset <= len_ByChars Then MultiSubstitute = MultiSubstitute & _ Mid(ByChars, anOffset, 1) End If Else MultiSubstitute = MultiSubstitute & S End If Next
End Function '===================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3) entiers.
Merci Christine
Bonsoir,
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le
renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement de
rappeler qu'il en fait une promo intensive :), tu peux construire une petite
fonction perso de ce style :
'===================== Function NbNombres(S)
Dim tmp$
If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S
tmp = MultiSubstitute(tmp, "+-/*", "____")
NbNombres = UBound(Split(tmp, "_")) + 1
End Function
Function MultiSubstitute(InputStr As String, _
ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer
Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr)
len_ByChars = Len(ByChars)
For i = 1 To len_Input
S = Mid(InputStr, i, 1)
anOffset = InStr(ToBeReplacedChars, S)
If anOffset > 0 Then
If anOffset <= len_ByChars Then
MultiSubstitute = MultiSubstitute & _
Mid(ByChars, anOffset, 1)
End If
Else
MultiSubstitute = MultiSubstitute & S
End If
Next
End Function
'=====================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur
dans cette formule? Normalement, la réponse devrait me donner (3) entiers.
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement de rappeler qu'il en fait une promo intensive :), tu peux construire une petite fonction perso de ce style :
'===================== Function NbNombres(S) Dim tmp$ If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S tmp = MultiSubstitute(tmp, "+-/*", "____") NbNombres = UBound(Split(tmp, "_")) + 1 End Function
Function MultiSubstitute(InputStr As String, _ ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr) len_ByChars = Len(ByChars) For i = 1 To len_Input S = Mid(InputStr, i, 1) anOffset = InStr(ToBeReplacedChars, S) If anOffset > 0 Then If anOffset <= len_ByChars Then MultiSubstitute = MultiSubstitute & _ Mid(ByChars, anOffset, 1) End If Else MultiSubstitute = MultiSubstitute & S End If Next
End Function '===================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3) entiers.
Merci Christine
AV
Salut Frédéric,
Il me semble que la recherche demandée est à faire dans une formule contenue dans une cellule donc
If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S pourrait être modifié en :
If Left(S.Formula, 1) = "=" Then tmp = Mid(S.Formula, 2) Else tmp = S.Formula
mais.... comme l'intulé de la question est "nombre d'entiers dans une formule", la solution que tu proposes comptabilise aussi les nbres décimaux donc ça devrait pas faire.... sous réserve que la possibilité de présence de nbres décimaux existe dans la formule (c'est au questionneur de dire..!)
Par ailleurs, la présence d'un nom défini, renvoie un résultat erroné : Ex : =2+fifi+3+4 résultat attendu : 3 - résultat renvoyé : 4
AV juste pour faire avancer le smilblick
"Frédéric Sigonneau" a écrit dans le message news:
Bonsoir,
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement de
rappeler qu'il en fait une promo intensive :), tu peux construire une petite fonction perso de ce style :
'===================== > Function NbNombres(S) Dim tmp$ If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S tmp = MultiSubstitute(tmp, "+-/*", "____") NbNombres = UBound(Split(tmp, "_")) + 1 End Function
Function MultiSubstitute(InputStr As String, _ ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr) len_ByChars = Len(ByChars) For i = 1 To len_Input S = Mid(InputStr, i, 1) anOffset = InStr(ToBeReplacedChars, S) If anOffset > 0 Then If anOffset <= len_ByChars Then MultiSubstitute = MultiSubstitute & _ Mid(ByChars, anOffset, 1) End If Else MultiSubstitute = MultiSubstitute & S End If Next
End Function '===================== > FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3) entiers.
Merci Christine
Salut Frédéric,
Il me semble que la recherche demandée est à faire dans une formule contenue
dans une cellule donc
If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S
pourrait être modifié en :
If Left(S.Formula, 1) = "=" Then tmp = Mid(S.Formula, 2) Else tmp = S.Formula
mais.... comme l'intulé de la question est "nombre d'entiers dans une formule",
la solution que tu proposes comptabilise aussi les nbres décimaux donc ça
devrait pas faire.... sous réserve que la possibilité de présence de nbres
décimaux existe dans la formule (c'est au questionneur de dire..!)
Par ailleurs, la présence d'un nom défini, renvoie un résultat erroné :
Ex : =2+fifi+3+4 résultat attendu : 3 - résultat renvoyé : 4
AV juste pour faire avancer le smilblick
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
news: 3F1DAB2D.8CFBC0FE@wanadoo.fr...
Bonsoir,
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le
renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement
de
rappeler qu'il en fait une promo intensive :), tu peux construire une petite
fonction perso de ce style :
'===================== > Function NbNombres(S)
Dim tmp$
If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S
tmp = MultiSubstitute(tmp, "+-/*", "____")
NbNombres = UBound(Split(tmp, "_")) + 1
End Function
Function MultiSubstitute(InputStr As String, _
ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer
Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr)
len_ByChars = Len(ByChars)
For i = 1 To len_Input
S = Mid(InputStr, i, 1)
anOffset = InStr(ToBeReplacedChars, S)
If anOffset > 0 Then
If anOffset <= len_ByChars Then
MultiSubstitute = MultiSubstitute & _
Mid(ByChars, anOffset, 1)
End If
Else
MultiSubstitute = MultiSubstitute & S
End If
Next
End Function
'===================== >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur
dans cette formule? Normalement, la réponse devrait me donner (3) entiers.
Il me semble que la recherche demandée est à faire dans une formule contenue dans une cellule donc
If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S pourrait être modifié en :
If Left(S.Formula, 1) = "=" Then tmp = Mid(S.Formula, 2) Else tmp = S.Formula
mais.... comme l'intulé de la question est "nombre d'entiers dans une formule", la solution que tu proposes comptabilise aussi les nbres décimaux donc ça devrait pas faire.... sous réserve que la possibilité de présence de nbres décimaux existe dans la formule (c'est au questionneur de dire..!)
Par ailleurs, la présence d'un nom défini, renvoie un résultat erroné : Ex : =2+fifi+3+4 résultat attendu : 3 - résultat renvoyé : 4
AV juste pour faire avancer le smilblick
"Frédéric Sigonneau" a écrit dans le message news:
Bonsoir,
Puisque tu utilises Excel 2000 la fonction Split te tend les bras. Avec le renfort de la fonction MultiSubstitute de Daniel M. (dont il oublie rarement de
rappeler qu'il en fait une promo intensive :), tu peux construire une petite fonction perso de ce style :
'===================== > Function NbNombres(S) Dim tmp$ If Left(S, 1) = "=" Then tmp = Mid(S, 2) Else tmp = S tmp = MultiSubstitute(tmp, "+-/*", "____") NbNombres = UBound(Split(tmp, "_")) + 1 End Function
Function MultiSubstitute(InputStr As String, _ ToBeReplacedChars As String, ByChars As String) As String
Dim S As String, i As Integer Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer
len_Input = Len(InputStr) len_ByChars = Len(ByChars) For i = 1 To len_Input S = Mid(InputStr, i, 1) anOffset = InStr(ToBeReplacedChars, S) If anOffset > 0 Then If anOffset <= len_ByChars Then MultiSubstitute = MultiSubstitute & _ Mid(ByChars, anOffset, 1) End If Else MultiSubstitute = MultiSubstitute & S End If Next
End Function '===================== > FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, Excel 2000
Formule = "=2+3+4"
Existe-t-il une fonction qui me permettre de connaître le nombre de valeur dans cette formule? Normalement, la réponse devrait me donner (3) entiers.