Skip to main content
Réponse

EDITION HISTORIQUE FONCTION IF


Agnès PETIT
Explorateur
Forum|alt.badge.img

Bonjour

je n’arrive pas à paramétrer une fonction “if”. Voici ce que j’écrit : 

If trunc(anciennete()/12)>= 2 then

colonne25 = colonne01250 * 0.05

If trunc(anciennete()/12)>= 5 then

colonne25 = colonne01250 * 0.15

If trunc(anciennete()/12)>= 10 then

colonne25 = colonne01250 * 0.25

Else

colonne25 = 0

 

la colonne01250 est calculée avant la colonne 25 et dans mon édition il y a bien begin au début et end à la fin car si j’enlève l’instruction if mon tableau fonctionne.

Merci de votre aide

 

Meilleure réponse par GUILLAUME PRATLONG

Ah ben oui on doit pouvoir faire ca.

Colonne25=0

If anciennete()/12>= 10 then
colonne25 = colonne01250 * 0.25
    Else If anciennete()/12>= 5 then
    colonne25 = colonne01250 * 0.15
        Else If anciennete()/12>= 2 then
        colonne25 = colonne01250 * 0.05
             Endif
        Endif
    Endif

colonne25=round(colonne25,2)
End

 

Vous testez ? 

8 commentaires

Forum|alt.badge.img+1

et il vous faut pas 4 ou 5 ENDIF à la fin ? 


Forum|alt.badge.img+1

If trunc(anciennete()/12)>= 2 then
colonne25 = colonne01250 * 0.05
    Else If trunc(anciennete()/12)>= 5 then
    colonne25 = colonne01250 * 0.15
        Else If trunc(anciennete()/12)>= 10 then
        colonne25 = colonne01250 * 0.25
            Else
            colonne25 = 0
            Endif
        Endif
    Endif
End


Alors aussi : Pourquoi trunc et >= à 2 ?

si on utilise Trunc… On peut mettre >2, je comprends l’interet.
Mais là je vois pas l’interet de tronquer à 2, sans décimales.
C’est anecdotique, je vous l’accorde.


Agnès PETIT
Explorateur
Forum|alt.badge.img
  • Auteur
  • Explorateur
  • September 12, 2025

Guillaume Bonjour

Je vous remercie de votre retour, ça fonctionne (plus d’erreur en lançant l’édition) mais je dois me tromper quelque part dans les instructions

En fait je veux

  • si ancienneté de 2 ans et moins de 5 ans alors colonne01250 x 0.05 
  • si ancienneté de 5 ans et moins de 10 ans alors colonne01250 x 0.15
  • si ancienneté de 10 ans et plus alors colonne01250 x 0.25

Autre souci le résultat est arrondi et je souhaite deux chiffres après la virgule

 

Pouvez vous m’aider ?

 


Forum|alt.badge.img+1

Ah ben oui on doit pouvoir faire ca.

Colonne25=0

If anciennete()/12>= 10 then
colonne25 = colonne01250 * 0.25
    Else If anciennete()/12>= 5 then
    colonne25 = colonne01250 * 0.15
        Else If anciennete()/12>= 2 then
        colonne25 = colonne01250 * 0.05
             Endif
        Endif
    Endif

colonne25=round(colonne25,2)
End

 

Vous testez ? 


Agnès PETIT
Explorateur
Forum|alt.badge.img
  • Auteur
  • Explorateur
  • September 12, 2025

Merci mais ça ne marche pas : le résultat donne zéro au lieu de 107 et des poussières


Agnès PETIT
Explorateur
Forum|alt.badge.img
  • Auteur
  • Explorateur
  • September 12, 2025

Guillaume

C’est bon j’ai trouvé, merci infiniment

Si je peux abuser 

j’ai 

colonne10 = BUL_SalaireDeBaseHeuresNormales qui est égale à 39000 car j’ai fait l’édition sur 12 mois

colonne01251 = BUL_NbHMensuellesNormales qui est égale 1820 car j’ai fait l’édition sur 12 mois

colonne 24 = colonne10 / colonne01251

Pour la colonne 24 il prend bien les 39000 mais pour la colonne01251 il prend que 151.67 soit 1 mois au lieu de 12 mois
 


Forum|alt.badge.img+1

Ah ! 😅

 

On va essayer de la faire plus jolie : 

begin
colonne01250=1000.985475
colonne25=0.00

If anciennete()> 24 then colonne25 = 0.05
If anciennete()> 60 then colonne25 = 0.15
If anciennete()> 120 then colonne25 = 0.25
colonne25=colonne25*colonne01250
colonne25=round(colonne25,2)

End


Forum|alt.badge.img+1

Oui, calculer l’édition sur plusieurs mois, pour en faire une somme je pense que ca va pas marcher.

Le logiciel le traite mois par mois, ca se voit mieux en options.détails activée.

 

Je pense qu’il vous faut changer vos formules de calcul pour colonne 10 et 01251 pour marquer les dates dans la formule.

via la formule cumulbulletins ou un truc comme ca.

datedeb= date(01,01,2025)
datefin= date(31,08,2025)
colonne035=CumulBulletins(datedeb,datefin,BUL_NbHMensuellesNormales)