Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser une fonction perso sur plusieurs cellules

9 réponses
Avatar
AB
Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme 2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB

9 réponses

Avatar
JB
Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB


On 30 mar, 18:40, "AB" wrote:
Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme 2+ 2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB


Avatar
Daniel
Je ne vois pas comment modifier ta fonction pour la faire fonctionner avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB


On 30 mar, 18:40, "AB" wrote:
Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme 2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB


Avatar
AH60
Bonjour
pour Daniel peut être ça

Function eval(champ As Range, x As Range)
temp = 0
temp = temp + Evaluate(champ.Text) + Evaluate(x.Text)
eval = temp
End Function

Abed_H



Je ne vois pas comment modifier ta fonction pour la faire fonctionner avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB


On 30 mar, 18:40, "AB" wrote:
Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme 2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB








Avatar
Daniel
Bonsoir.
Merci, mais ça ne fonctionne pas quand il n'y a qu'une plage (A1:A2, par
exemple) ou plus de deux.
Cordialement.
Daniel
"AH60" a écrit dans le message de news:

Bonjour
pour Daniel peut être ça

Function eval(champ As Range, x As Range)
temp = 0
temp = temp + Evaluate(champ.Text) + Evaluate(x.Text)
eval = temp
End Function

Abed_H



Je ne vois pas comment modifier ta fonction pour la faire fonctionner
avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB


On 30 mar, 18:40, "AB" wrote:
Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme
2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou
en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB










Avatar
JB
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "Daniel" wrote:
Je ne vois pas comment modifier ta fonction pour la faire fonctionner avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB

On 30 mar, 18:40, "AB" wrote:



Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme 2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB- Masquer le texte des messages précédents -


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



Avatar
Daniel
Super.
Merci.
Daniel
"JB" a écrit dans le message de news:

http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "Daniel" wrote:
Je ne vois pas comment modifier ta fonction pour la faire fonctionner avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB

On 30 mar, 18:40, "AB" wrote:



Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme
2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB- Masquer le texte des messages précédents -


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



Avatar
AB
Bonjour à tous,
Merci de vous intéresser à mon problème.
J'ai testé les solutions proposées, qui ne semblent marcher que s'il n'y a
pas de champ vide.
Par exemple, si j'ai des données en lignes 1,2,4, mais rien en ligne 3, la
fonction renvoie une erreur.
Votre avis ?
AB

"Daniel" a écrit dans le message de news:
uWSU$
Super.
Merci.
Daniel
"JB" a écrit dans le message de news:

http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "Daniel" wrote:
Je ne vois pas comment modifier ta fonction pour la faire fonctionner
avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB

On 30 mar, 18:40, "AB" wrote:



Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme
2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou
en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB- Masquer le texte des messages précédents -


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








Avatar
JB
Bonjour,

Function eval(champ As Range)
temp = 0
For Each c In champ
If c <> "" Then temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

Function eval2(champ As String)
a = Split(champ, ";")
temp = 0
For Each c In a
For Each i In Range(c)
If i <> "" Then temp = temp + Evaluate(i.Text)
Next i
Next c
eval2 = temp
End Function

http://cjoint.com/?dFk1nENb84

JB


On 31 mar, 10:28, "AB" wrote:
Bonjour à tous,
Merci de vous intéresser à mon problème.
J'ai testé les solutions proposées, qui ne semblent marcher que s'il n'y a
pas de champ vide.
Par exemple, si j'ai des données en lignes 1,2,4, mais rien en ligne 3, la
fonction renvoie une erreur.
Votre avis ?
AB

"Daniel" a écrit dans le message de news:
uWSU$



Super.
Merci.
Daniel
"JB" a écrit dans le message de news:

http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB

On 30 mar, 20:22, "Daniel" wrote:
Je ne vois pas comment modifier ta fonction pour la faire fonctionner
avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB

On 30 mar, 18:40, "AB" wrote:

Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la for me
2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou
en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



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





Avatar
AB
Bonjour JB,
La fonction eval marche parfaitement et répond tout à fait à ce que je
cherchais.
Je ne vois pas à quoi sert la fonction eval2, mais bon...
En tout cas, merci beaucoup à tous.
André

"JB" a écrit dans le message de news:

Bonjour,

Function eval(champ As Range)
temp = 0
For Each c In champ
If c <> "" Then temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

Function eval2(champ As String)
a = Split(champ, ";")
temp = 0
For Each c In a
For Each i In Range(c)
If i <> "" Then temp = temp + Evaluate(i.Text)
Next i
Next c
eval2 = temp
End Function

http://cjoint.com/?dFk1nENb84

JB


On 31 mar, 10:28, "AB" wrote:
Bonjour à tous,
Merci de vous intéresser à mon problème.
J'ai testé les solutions proposées, qui ne semblent marcher que s'il n'y a
pas de champ vide.
Par exemple, si j'ai des données en lignes 1,2,4, mais rien en ligne 3, la
fonction renvoie une erreur.
Votre avis ?
AB

"Daniel" a écrit dans le message de news:
uWSU$



Super.
Merci.
Daniel
"JB" a écrit dans le message de news:

http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB

On 30 mar, 20:22, "Daniel" wrote:
Je ne vois pas comment modifier ta fonction pour la faire fonctionner
avec
des cellules séparées (genre A1;A3). Une idée ?
Daniel
"JB" a écrit dans le message de news:

Bonsoir,

Function eval(champ As Range)
temp = 0
For Each c In champ
temp = temp + Evaluate(c.Text)
Next c
eval = temp
End Function

JB

On 30 mar, 18:40, "AB" wrote:

Hello la compagnie,
En colonne A, j'ai dans plusieurs cellules des données sous la forme
2+2,
3+5, etc.
Par exemple dans A1 : 2+2, dans A2 : 3+5, dans A10 : 5+6 etc.
Je sais obtenir le résultat de l'expression placée en A1, ou en A2 ou
en
A10, en utilisant une fonction EVAL
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
Mais comment faire pour obtenir directement 23, par exemple en A11 ?
Merci de vos lumières
AB- Masquer le texte des messages précédents -


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



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