Utiliser une fonction perso sur plusieurs cellules

Le
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
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 #4262571
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"
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


Daniel
Le #4262511
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"
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"
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


AH60
Le #4262451
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"
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"
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








Daniel
Le #4262431
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"
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"
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"
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










JB
Le #4262421
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "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"
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"


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 -



Daniel
Le #4262401
Super.
Merci.
Daniel
"JB"
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "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"
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"


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 -



AB
Le #4316671
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" uWSU$
Super.
Merci.
Daniel
"JB"
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB


On 30 mar, 20:22, "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"
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"


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 -








JB
Le #4316591
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"
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" uWSU$



Super.
Merci.
Daniel
"JB"
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB

On 30 mar, 20:22, "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"
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"
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 -





AB
Le #4316361
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"
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"
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" uWSU$



Super.
Merci.
Daniel
"JB"
http://cjoint.com/?dEvh41ggCp

Voir Eval2()

JB

On 30 mar, 20:22, "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"
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"
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 -





Publicité
Poster une réponse
Anonyme