OVH Cloud OVH Cloud

Création d'une fonction

9 réponses
Avatar
Thierry 46
Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou
7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par
case is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr

9 réponses

Avatar
Daniel
Bonjour.
AA n'est pas une référence de cellule. Essaie A1.
Cordialement.
Daniel
"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message de news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou 7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par case
is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr



Avatar
Thierry 46
Daniel avait écrit le 09/07/2005 :
Bonjour.
AA n'est pas une référence de cellule. Essaie A1.
Cordialement.
Daniel
"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message de news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou 7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par case
is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

-- thmc46(nospam)@wanadoo.fr




oui merci AA c'était au hasard: A1 le pb y est quand j'appelle cette
fonction et que la cellule en référence a 8,00;
de plus pourquoi cet éditeur qui me met # à la place des 00 ?

--
thmc46(nospam)@wanadoo.fr


Avatar
Daniel
Et vérifie que, dans le nombre de ta cellule soit bien formaté avec des
décimales.
Daniel
"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message de news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou 7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par case
is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr



Avatar
Hervé
Bonjour Thierry,
Je viens de tester, en entrant une série de nombres de A1 à A762 (0,99 à
8,60) j'obtiens bien les coefficients correspondants même pour 8,00. Tu dis
"=coeff_appels(AA)" AA est un nom que tu as donné à une cellule ou est-ce
une erreur de frappe ?
Hervé.

"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou
7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par
case is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr



Avatar
Thierry 46
Hervé a émis l'idée suivante :
Bonjour Thierry,
Je viens de tester, en entrant une série de nombres de A1 à A762 (0,99 à
8,60) j'obtiens bien les coefficients correspondants même pour 8,00. Tu dis
"=coeff_appels(AA)" AA est un nom que tu as donné à une cellule ou est-ce
une erreur de frappe ?
Hervé.
AA est une erreur de frappe

ma formule: =si(estna(h$42);"";coeff_appels(h$42))

si je fais ? coeff_appels(8.00) c'est ok

je ne comprends pas les #
je vais chercher l'erreur dans 1 autre macro
j'ai 2 macros et sur l'autre( coeff_retraits) je n'ai pas ce pb de #,
les voilà

1 petit souci:
? coeff_retraits(0.28) me donne 0,55 alors que ce devrait être 0,6

Function coeff_appels(coef)

Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function



Function coeff_retraits(coef)

Select Case coef
Case Is > 0.45: coeff_retraits = 0.25
Case 0.41 To 0.4499: coeff_retraits = 0.32
Case 0.37 To 0.4099: coeff_retraits = 0.39
Case 0.34 To 0.3699: coeff_retraits = 0.45
Case 0.31 To 0.3399: coeff_retraits = 0.5
Case 0.2799 To 0.3099: coeff_retraits = 0.55
Case Is <= 0.28: coeff_retraits = 0.6

End Select
End Function

thierry

"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou
7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par
case is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr



--
thmc46(nospam)@wanadoo.fr


Avatar
Thierry 46
Thierry 46 a exposé le 09/07/2005 :
Hervé a émis l'idée suivante :
Bonjour Thierry,
Je viens de tester, en entrant une série de nombres de A1 à A762 (0,99 à
8,60) j'obtiens bien les coefficients correspondants même pour 8,00. Tu dis
"=coeff_appels(AA)" AA est un nom que tu as donné à une cellule ou est-ce
une erreur de frappe ?
Hervé.
AA est une erreur de frappe

ma formule: =si(estna(h$42);"";coeff_appels(h$42))

si je fais ? coeff_appels(8.00) c'est ok

je ne comprends pas les #
je vais chercher l'erreur dans 1 autre macro
j'ai 2 macros et sur l'autre( coeff_retraits) je n'ai pas ce pb de #, les
voilà

1 petit souci:
? coeff_retraits(0.28) me donne 0,55 alors que ce devrait être 0,6

Function coeff_appels(coef)

Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function



Function coeff_retraits(coef)

Select Case coef
Case Is > 0.45: coeff_retraits = 0.25
Case 0.41 To 0.4499: coeff_retraits = 0.32
Case 0.37 To 0.4099: coeff_retraits = 0.39
Case 0.34 To 0.3699: coeff_retraits = 0.45
Case 0.31 To 0.3399: coeff_retraits = 0.5
Case 0.2799 To 0.3099: coeff_retraits = 0.55


je me répond: l'erreur est dans le case de ci-dessus c'est case 0.2801
to 0.3099 qu'il faut

Case Is <= 0.28: coeff_retraits = 0.6

End Select
End Function

thierry

"Thierry 46" <thmc46(nospam)@wanadoo.fr> a écrit dans le message news:

Bonjour à tous
Voici une fonction:
Function coeff_appels(coef)
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case 6 To 6.99: coeff_appels = 0.3
Case 7 To 7.49: coeff_appels = 0.4
Case 7.5 To 7.99: coeff_appels = 0.5
Case 8 To 8.49: coeff_appels = 0.55
Case Is > 8.49: coeff_appels = 0.6
End Select
End Function

cela fonctionne sauf que pour une cellule par exemple:
AA=8.00

si je fais:
=coeff_appels(AA) j'ai 0 au lieu de 0.55, cela marche avec 8.01 ou
7.99
si je modifie ma fonction:
case Is < 6 par case is < 6.00 le système me remplace ma saisie par
case is < 6# , idem avec les autres case ( 8, etc...)
que se passe t'il?

merci

--
thmc46(nospam)@wanadoo.fr




--
thmc46(nospam)@wanadoo.fr



Avatar
Alain CROS
Bonjour.

Le # signifie que c'est une valeur de type Double.

Double, type de données

Les variables de type Double (à virgule flottante en double précision) sont stockées sous la forme de nombres à virgule flottante de
64 bits (8 octets) IEEE dont la valeur est comprise entre -1,79769313486231E308 et -4,94065645841247E-324 pour les nombres négatifs
et entre 4,94065645841247E-324 et 1,79769313486231E308 pour les positifs. Le caractère de déclaration de type Double est le signe #.

J'imagine que ton 8,00 est le résultat d'un calcul et qu'il est en fait 7,999999999 par exemple.
Ce cas n'est pas traité par ta fonction et donne 0.

Je propose :

Function coeff_appels#(coef#)
Application.Volatile
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case Is < 7: coeff_appels = 0.3
Case Is < 7.5: coeff_appels = 0.4
Case Is < 8: coeff_appels = 0.5
Case Is < 8.5: coeff_appels = 0.55
Case Else: coeff_appels = 0.6
End Select
End Function

Alain CROS

|
| oui merci AA c'était au hasard: A1 le pb y est quand j'appelle cette
| fonction et que la cellule en référence a 8,00;
| de plus pourquoi cet éditeur qui me met # à la place des 00 ?
|
| --
| thmc46(nospam)@wanadoo.fr
|
Avatar
Thierry 46
Alain CROS avait écrit le 09/07/2005 :
Bonjour.

Le # signifie que c'est une valeur de type Double.

Double, type de données

Les variables de type Double (à virgule flottante en double précision) sont
stockées sous la forme de nombres à virgule flottante de 64 bits (8 octets)
IEEE dont la valeur est comprise entre -1,79769313486231E308 et
-4,94065645841247E-324 pour les nombres négatifs et entre
4,94065645841247E-324 et 1,79769313486231E308 pour les positifs. Le caractère
de déclaration de type Double est le signe #.

J'imagine que ton 8,00 est le résultat d'un calcul et qu'il est en fait
7,999999999 par exemple. Ce cas n'est pas traité par ta fonction et donne 0.

Je propose :

Function coeff_appels#(coef#)
Application.Volatile
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case Is < 7: coeff_appels = 0.3
Case Is < 7.5: coeff_appels = 0.4
Case Is < 8: coeff_appels = 0.5
Case Is < 8.5: coeff_appels = 0.55
Case Else: coeff_appels = 0.6
End Select
End Function

Alain CROS


Merci pour cette réponse: le code est plus juste, mais j'ai toujours le
même résultat.
Le 8 vient d'une cellule qui fait 208 / 26,00 soit 8,00 ....
dur dur
thierry


oui merci AA c'était au hasard: A1 le pb y est quand j'appelle cette
fonction et que la cellule en référence a 8,00;
de plus pourquoi cet éditeur qui me met # à la place des 00 ?

--
thmc46(nospam)@wanadoo.fr



--
thmc46(nospam)@wanadoo.fr


Avatar
Thierry 46
Alain CROS vient de nous annoncer :
Bonjour.

Le # signifie que c'est une valeur de type Double.

Double, type de données

Les variables de type Double (à virgule flottante en double précision) sont
stockées sous la forme de nombres à virgule flottante de 64 bits (8 octets)
IEEE dont la valeur est comprise entre -1,79769313486231E308 et
-4,94065645841247E-324 pour les nombres négatifs et entre
4,94065645841247E-324 et 1,79769313486231E308 pour les positifs. Le caractère
de déclaration de type Double est le signe #.

J'imagine que ton 8,00 est le résultat d'un calcul et qu'il est en fait
7,999999999 par exemple. Ce cas n'est pas traité par ta fonction et donne 0.

Je propose :

Function coeff_appels#(coef#)
Application.Volatile
Select Case coef
Case Is < 6: coeff_appels = 0.25
Case Is < 7: coeff_appels = 0.3
Case Is < 7.5: coeff_appels = 0.4
Case Is < 8: coeff_appels = 0.5
Case Is < 8.5: coeff_appels = 0.55
Case Else: coeff_appels = 0.6
End Select
End Function

Alain CROS


oui merci AA c'était au hasard: A1 le pb y est quand j'appelle cette
fonction et que la cellule en référence a 8,00;
de plus pourquoi cet éditeur qui me met # à la place des 00 ?

--
thmc46(nospam)@wanadoo.fr



Je viens de réussir en changeant le
case is < 8 to 8.49:
par
case is < 8, 0 to 8.49 j'ai écrit 8,00 et le système écrit 8, 0 ( un
espace) !
Qui comprend le mystère ?

avec l'exemple d'Alain cela me donne 0,5 au lieu de 0,55 ce qui prouve
que le résultat de 208 / 26,00 est 7,9999999999 au lieu de 8

--
thmc46(nospam)@wanadoo.fr