Crésus Salaires

31L’éditeur de calculs

Les rubriques font très souvent appel à des formules plus ou moins compliquées, que ce soit pour retourner des montants, des phrases ou toute sorte d’information.

Les calculs associés aux rubriques se définissent dans le dialogue Entreprise – Rubriques (§19.7.4 Rubriques de type Indemnités et §19.7.7 Création de rubriques personnalisées).

L’éditeur de calculs est le même que l’on travaille dans les rubriques ou dans une présentation.

Dans une présentation, l’objet calcul  permet de placer une valeur, une chaîne de caractères, une date autre que les rubriques prévues en standard. Le résultat d’un calcul dans une présentation ne peut qu’être affiché et ne peut pas être mémorisé pour un autre usage. Pour modifier un calcul existant dans une présentation, il faut sélectionner l’objet, et cliquer l’icône « calcul » de la barre d’outils, ou double-cliquer l’objet.

La première zone du dialogue permet de construire la formule. Vous pouvez y taper ce que vous voulez au clavier. Les noms des rubriques, plutôt complexes, doivent être scrupuleusement respectés, y compris leur préfixe. Pour faciliter l’introduction des noms de rubriques, utilisez de préférence les listes. Les chaînes de caractères doivent être tapées entre guillemets.

La liste Opération présente toutes les opérations connues par le module de calcul. Celles-ci sont réparties en 6 sous-groupes :

  • Opération : les 4 opérations et des totalisateurs.
  • Tests : opérateurs conditionnels.
  • Conversion : transformation des formats.
  • % : calculs de pourcentages.
  • Date : traitement sur les dates et heures.
  • Chaîne : traitement sur les chaînes de caractères.

Chaque fonction sélectionnée affiche un texte d’aide dans la partie droite du dialogue. Les opérations sont détaillées ci-après.

La liste Variable affiche toutes les rubriques utilisées par Crésus. Elle est dynamique : lorsque vous tapez une partie du libellé de la rubrique dans le calcul ou dans la case éditable au bas du dialogue, Crésus affiche les rubriques correspondantes.

Vous pouvez utiliser les cases à cocher de la partie de gauche pour affiner la recherche.

La liste affiche en priorité les rubriques récemment utilisées, et regroupe si possible les déterminants, coefficients et valeurs d’une même rubrique.

Pour ajouter l’élément sélectionné dans la formule en édition, cliquez le bouton Insérer ou double-cliquez l’élément.

Les rubriques qui n’ont pas de contenu (rubrique vide) sont traitées comme des nombres nuls dans la plupart des cas. Il peut être nécessaire d’utiliser la fonction DEFAUT dans certains cas particuliers. Par exemple :3 * @Coef:Heures maladie CM retourne zéro s’il n’y a pas d’heures maladie CM3 * DEFAUT (@Coef:Heures maladie CM ; 0) retourne également zéro s’il n’y a pas d’heures de maladie3 * DEFAUT (@Coef:Heures maladie CM ; 2) retourne 6 s’il n’y a pas d’heures de maladie

31.1Opération

Les quatre opérateurs de base (+, −, *, /) ont la fonctionnalité usuelle pour additionner, soustraire, multiplier et diviser des nombres. Les multiplications et divisions se font avant les additions et les soustractions.

Addition Le + peut en outre être utilisé pour concaténer deux chaînes de caractères pour n’en faire plus qu’une : « Bon »+ »jour » retourne « Bonjour »
MIN() Cherche la valeur minimale dans une liste de nombres.
MIN(12;45;-3;28) retourne la valeur -3
MAX() Cherche la valeur maximale dans une liste de nombres.
MAX(12;45;-3;28) retourne la valeur 45
SOMME() Calcule la somme d’une liste de nombres.
SOMME(12;45;-3;28) retourne la valeur 82
MOYENNE() Calcule la moyenne d’une liste de nombres.
MOYENNE(12;45;-3;28) retourne la valeur 20.5

 

31.2Les totalisateurs

Les six fonctions suivantes se trouvent aussi dans la liste des opérations.

Elles permettent d’obtenir non pas la valeur d’une rubrique pour un employé au mois courant, mais le cumul soit sur les employés, soit sur l’année ou encore sur le trimestre courant.

TOTEMPLOYES()  Total pour tous les employés.
TOTEMPLOYES(@Brut:Salaire versé) Il est également possible d’appliquer le cumul sur les employés décrit au §30.7.9 Cumul sur les employés sur l’objet Calcul dessiné dans la présentation.
TOTANNEE() Total pour toute l’année, limité aux périodes ayant un salaire calculé.
TOTANNEE(@Déd:Cotisation AC) donne le total des cotisations AC sur les salaires versés.
Il est également possible d’appliquer le cumul sur la période décrit au §30.7.8 Cumul sur l’année sur l’objet Calcul dessiné dans la présentation.
 TOUTANNEE()  Total pour toute l’année courante, prend en compte aussi les mois sans salaire calculé.
TOUTANNEE(DEFAUT(@Déd:Cotisation AC ; 200)) retourne le total des cotisations AC déjà calculées plus 200.– par période vide.
 TOTTRIMESTRE() Total pour le trimestre qui comprend le mois sélectionné
TOTTRIMESTRE(@Ind:Remboursement de km)
 PRECEDENT()  Valeur d’une expression calculée pour la période précédente. PRECEDENT(@Brut:Salaire versé) retourne le montant du salaire versé le mois passé. Au début de l’année, PRECEDENT() retourne la valeur du dernier salaire de l’année précédente.
 TOTPRECEDENT()  Total de l’ensemble des périodes précédentes.
TOTPRECEDENT(@Déd:Prime AANP) retourne le montant total des primes AANP déjà prélevées les mois précédents.
Cette fonction accepte un second paramètre optionnel pour limiter les périodes additionnées à celles qui ont le même critère.
TOTPRECEDENT(@Coef:Jours de maternité
; @Déterm:Date de l’accouchement)retourne le nombre de jours de maternité des périodes précédentes concernant la même date d’accouchement.

Dans le calcul d’un salaire, ces opérations de total sur l’année ne dépassent pas le mois courant. Par exemple, le salaire calculé en février ignore les salaires de mars et des périodes suivantes.

CUMUL() Fait la somme de toutes les indemnités selon qu’elles sont soumises ou non à divers bruts déterminants.
CUMUL(« AVS ») retourne le total des montants soumis à l’AVS,
CUMUL(« 2.1 ») retourne le total des montants affichés au pt 2.1 du certificat de salaire.

Les termes utilisables avec la fonction CUMUL() sont les suivants :

BRUT compris dans le salaire brut.
NET compris dans le salaire net.
VERSE compris dans le montant versé à l’employé.
AVS soumis à la cotisation AVS.
AC soumis à la cotisation chômage.
LAA soumis à l’assurance accidents.
LAAC soumis à l’assurance accidents complémentaire.
LPP pris en compte pour la prime LPP.
FT soumis à l’assurance frais de traitement.
IJM soumis à l’assurance indemnité journalière maladie.
CPROF soumis à la contribution professionnelle.
IMP soumis à l’impôt à la source.
VAC considéré pour les indemnités vacances.
FERIE considéré pour les indemnités pour jours fériés.
13E considéré pour le calcul du 13e salaire.
DIV  ajouté à la base « DIVERS ».
SPE ajouté à la base « SPECIAL ».
FORFAIT considéré pour les frais AVS forfaitaires.
ALLOC. ajouté aux allocations familiales.
IJ. total des indemnités journalières.
TIERS total des prestations de tiers.
ACCMAL. total des indemnités accident et maladie.
PTX indemnités proportionnelles pour les IS (§32 Calcul des impôts à la source).
PH. indemnités « salaire horaire de base » pour les IS (§32 Calcul des impôts à la source).
TX0. indemnités qui n’influencent pas le taux pour les IS (§32 Calcul des impôts à la source).

Le code pour les accumulations des bases personnalisées peut aussi être utilisé (§19.7.6 Rubriques de type Bases).

La fonction CUMUL() peut également traiter les positions de 1. à 13.2.3 liées au certificat de salaire.

Tous ces termes peuvent également être utilisés dans le filtre icone filtre associé à @Ind:* et @Déd:* (§30.7.10 Filtre)

Si vous créez vos propres bases (§19.7.6 Rubriques de type Bases), vous pouvez spécifier le Code pour les accumulations. Ce code peut être utilisé pour la fonction CUMUL()

Il est possible d’évaluer plusieurs critères en les séparant par le caractère & (fonction ET) qui s’obtient par Shift+6 ou le caractère « barre verticale » | (fonction OU) qui s’obtient sur un clavier Windows par AltGr+7.

AVS&LAA&LPP soumis AVS et soumis LAA et soumis LPP.
AVS|LAA|LPP soumis AVS ou soumis LAA ou soumis LPP.

Il n’est pas possible de mettre à la fois des & (ET) et des | (OU).

On peut aussi faire des cumuls sur les indemnités non soumises à un brut déterminant donné en utilisant le caractère point d’exclamation ! devant le code.

!AVS indemnités non soumises à l’AVS.
BRUT&!LPP indemnités payées à l’employé, mais non soumises à la LPP.

Les fonctions peuvent être enchâssées les unes dans les autres :
TOTEMPLOYES(TOTANNEE(@Brut:salaire AC))
retourne le total pour tous les employés et pour toute l’année du salaire AC déterminant.

La procédure peut être combinée avec des tests (§31.3 Les tests) pour obtenir un total partiel sur une catégorie d’employés ou une période de dates. Par exemple pour avoir le total d’une valeur pour toutes les femmes :
TOTEMPLOYES(SI(@Sexe de l’employé=1 ; @Brut:salaire LAA ; 0))
Dans le cas où le sexe de l’employé vaut 1 (c’est une femme), on additionne le salaire LAA, dans le cas contraire, on additionne zéro.

Autre exemple pour obtenir le montant d’une rubrique pour le mois précédent :
TOTANNEE(SI(@Mois courant=@Mois sélectionné-1 ; @Ind:salaire; 0))
Pour comprendre cette formule, il faut savoir que @Mois sélectionné correspond au mois où se trouve le curseur dans le tableau général, donc le mois pour lequel on imprime le document. @Mois courant par contre change de 1 à 12 (ou plus selon le nombre de périodes de paie) durant le calcul de TOTANNEE. La formule entre parenthèses sera donc calculée n fois, en changeant le mois courant à chaque fois, lorsque le mois courant sera égal au mois sélectionné moins un, on additionne l’indemnité voulue, sinon on ajoute zéro. Le résultat est donc la valeur de l’indemnité pour le mois précédent.

D’une manière similaire, on peut obtenir une valeur pour une période spécifique :
TOTANNEE(SI(@Mois courant=2
; @Ind:salaire mensuel + @Ind:salaire horaire
; 0))
retourne le total des salaires pour février, quel que soit le mois actuellement sélectionné dans le tableau général.

31.3Les tests

Il est possible de faire des comparaisons entre des éléments pour exécuter ensuite une opération plutôt qu’une autre.

Le résultat d’un test est toujours soit 1 (vrai) soit 0 (faux). Pour le programme toute valeur supérieure à 0 est considérée comme vraie, et toute valeur nulle ou négative est considérée comme fausse.

SI(test; sivrai; sifaux)

Si le résultat de test est vrai, évalue l’expression sivrai sinon évalue l’expression sifaux :
SI(@Brut:Salaire versé > 0; « à verser »; « à retenir »)
Signifie Si le salaire est supérieur à 0.–, il faut écrire « à verser », sinon il faut écrire « à retenir »

= Teste si deux nombres sont identiques.
<> Teste si deux nombres sont différents.
< Teste si le premier nombre est plus petit que le second.
<= Teste si le premier nombre est plus petit ou égal au second.
> Teste si le premier nombre est plus grand que le second.
>= Teste si le premier nombre est plus grand ou égal au second.
ET() Fait le ET logique entre plusieurs expressions. Toutes doivent être vraies pour donner un résultat vrai.
ET(3 > 2 ; 4 < -1 ; 1 >= 0) retourne 0 (« faux »), car 4 < -1 est faux.
OU() Fait le OU logique entre plusieurs expressions. Il suffit qu’une des expressions soit vraie pour donner un résultat vrai.
OU(3 > 2 ; 4 < -1 ; 1 >= 0) retourne 1 (« vrai »),
car 3 > 2 et 1 >= 0 sont vrais.
NON() Inverse le résultat d’un test. NON(4<-1) retourne 1 (vrai).
SEXE() Retourne 0 ou 1 selon le sexe de l’employé :
0 = homme, 1 = femme.
Il est aussi possible d’utiliser @Donnée:Sexe de l’employé(e).
HOMME() Évalue l’expression entre les parenthèses en considérant la valeur pour les hommes :
HOMME(@Donnée:Age retraité AVS)
retoune l’âge de retraite AVS pour les hommes.
FEMME() Évalue l’expression entre les parenthèses en considérant la valeur pour les femmes :
FEMME(@Donnée:Age retraité AVS)
retourne l’âge de retraite AVS pour les femmes.
SISOUMIS() et SINONSOUMIS() Ces tests ne figurent pas dans la liste. Ils sont décrits au §31.8 Spécialités

31.4Les conversions

ARRONDI(nombre; arrondi; excès) Arrondit un nombre au multiple le plus proche, par excès ou par défaut. Si on omet le dernier paramètre, l’arrondi se fait par excès.
ARRONDI(12.775) retourne 12.80.
ARRONDI(12.775; 0.05) retourne 12.80
ARRONDI(12.775; 0.05; 0) retourne 12.75

Attention : le format de la rubrique affichée ou imprimée provoque également un arrondi (§30.7.6 Format des rubriques).

INT(nombre) Ne garde que la partie entière du nombre.
INT(12.775) retourne 12.
FRAC(nombre) Ne garde que la partie fractionnaire du nombre.
FRAC(12.775) retourne 0.775.
DEFAUT(rubrique ; valeur de substitution) Si la rubrique est vide, elle est substituée par la valeur spécifiée (voir la note au §31 L’éditeur de calculs).
DEFAUT(@Ind:Salaire mensuel;100) retourne 100 s’il n’y a aucune valeur dans la rubrique Salaire mensuel.
VIDE() Donne un nombre vide (inexistant), peut être utile en relation avec la fonction DEFAUT() (voir la note au §31 L’éditeur de calculs).
SI(@Coef:Jours travaillés>0
; @Coef:Jours travaillés
; VIDE()
)
n’affiche rien au lieu de 0 si le nombre n’est pas plus grand que 0.
VIDE(rubrique) Retourne la valeur 1 (vrai) si la rubrique est vide, 0 (faux) dans le cas contraire.
SI(VIDE(@Ind:Salaire mensuel)
; « à l’heure »
; « au mois »
)
affiche (imprime) « à l’heure » si le salaire mensuel est vide et « au mois » dans le cas contraire.
CHAINE(valeur ; décimales) Convertit un nombre ou une date en chaîne de caractères.
Le paramètre optionnel décimales spécifie le nombre de chiffres significatifs à afficher (imprimer).
« Montant :  » + CHAINE(@Ind:Salaire mensuel;2)
« Nous sommes le  » +CHAINE(AUJOURDHUI())
CHAINEMOIS(mois ; langue) Retourne le nom du mois (1 à 12). Le second paramètre est optionnel et précise la langue voulue (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction retourne le nom dans la langue du document.
CHAINEMOIS(2) retourne « février »,
CHAINEMOIS(7;1) retourne « Juli ».
CHAINEJDLS(jour ; langue) Retourne le jour de la semaine (1 à 7). Le second paramètre est optionnel et précise la langue voulue (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction retourne le nom dans la langue du document.
CHAINEJDLS(2) retourne « mardi »,
CHAINEJDLS(1;2) retourne « Monday ».
FINLIGNE() ou \n Génère une fin de ligne, pour mettre une chaîne sur deux lignes.
@E.Donnée:Nom de l’entreprise + FINLIGNE() +
@E.Donnée:Adresse de l’entreprise
affiche (imprime)
« Espitec SA
Chemin du Fontenay »
@E.Donnée:Nom de l’entreprise + « \n « +
@E.Donnée:Adresse de l’entreprise
est équivalent.

31.5Les pourcentages

C%(montant ; taux) Calcule le pourcentage d’un montant.
C%(20;7) retourne 1.40.
A%(montant ; taux) Ajoute un pourcentage à un montant.
A%(20;7) retourne 21.40,
A%(20;-7) retourne 18.60.
S%(montant ; taux) Calcule la valeur qu’avait un montant avant qu’on ne lui ajoute un pourcentage.
S%(21.4;7) retourne 20,
S%(18.6;-7) retourne 20.
M%(montant ; taux) Calcule la valeur ajoutée à un montant augmenté d’un pourcentage.
M%(21.4;7) retourne 1.40,
M%(18.6;-7) retourne 1.40.
T%(montant ; montant) Calcule le pourcentage entre deux montants.
T%(21.4;20) retourne 7,
T%(18.6;20) retourne -7.

31.6Les dates

Lors de la saisie d’une date, si vous n’entrez que les 2 derniers chiffres de l’année, Crésus la complète pour ajouter le millésime 1900 ou 2000. Selon le type de date, la date charnière n’est pas la même. Par exemple :

  • Pour une date de naissance, 00 à 19 est transformé en 2000 à 2019, 20 à 99 est transformé en 1920 à 1999.
  • Pour la date d’entrée, 40 à 99 est transformé en 1940 à 1999, 00 à 39 est transformé en 2000 à 2039.
  • S’il s’agit d’une date de calcul du salaire, tout est transformé en 2000.

Vérifiez donc toujours que l’année complète est correcte.

De manière interne, le programme convertit les dates en nombres de jours depuis le 1.1.1900.

Les fonctions suivantes s’appliquent à ces dates.

AUJOURDHUI() Retourne la date du jour. Il est également possible d’utiliser la rubrique @Donnée:Aujourd’hui qui est équivalente.
DATE(jour ; mois ; année) Retourne le nombre représentant la date correspondante (en jours depuis le 1.1.1900).
Si le calcul ne traite qu’une date, il affiche (imprime) la date spécifiée.
DATE(25;12;18) retourne 25.12.2018,
DATE(25;12;18) – 15 retourne 10.12.2018.
Dans un calcul avec plusieurs dates, c’est bien le nombre représentant la date qui est utilisé, ce qui permet de calculer des intervalles entre des dates :
DATE(25;12;2018) – AUJOURDHUI()
retourne le nombre de jours entre aujourd’hui et Noël 2018.
JOUR(date) Retourne le jour du mois (1 à 31) correspondant à la date.
JOUR(DATE(3;2;2014)) retourne 3.
MOIS(date) Retourne le numéro du mois (1 à 12) correspondant à la date.
MOIS(DATE(3;2;2014)) retourne 2.
Le résultat est affiché sous forme de texte, à moins que la fonction ne soit utilisée dans un calcul numérique.
« Nous sommes en « +MOIS(AUJOURDHUI()) retourne « Nous sommes en mars ».
MOIS(DATE(3;2;2014)) + 3 retourne 5.
Pour afficher le rang du mois, il faut utiliser la fonction NOMBRE(MOIS(DATE())).
ANNEE(date) Retourne l’année (1900 à 2099) correspondant à la date.
Si l’année est entrée sous la forme de 2 chiffres,
00 à 49 retourne 2000 à 2049,
50 à 99 retourne 1950 à 1999.
ANNEE(DATE(5;6;51)) retourne 1951,
ANNEE(DATE(25;12;2051)) retourne 2051.
JDLS(date) retourne le jour de la semaine (1 = lundi à 7 = dimanche) correspondant à la date.
JDLS(DATE(28;3;14)) retourne 5 (vendredi).
SEMAINE(date) Convertit une date en numéro de semaine (0 à 53). La partie fractionnaire correspond au nombre de jours en centièmes depuis le début de la semaine.
Lundi = 0, mardi = 0.14 .. dimanche = 0.86
SEMAINE(DATE(28;3;14))
retourne 13.57 (c’est le vendredi de la 13e semaine).
INT(SEMAINE(DATE(28;3;14))) retourne 13.
ADDMOIS(date ; nombre) Ajoute un ou plusieurs mois à une date.
ADDMOIS(DATE(15;5;18);2) retourne 15.07.18
ADDMOIS(DATE(31;12;17);2) retourne le 29.02.2018
Le paramètre nombre est optionnel. Si on ne le précise pas, ADDMOIS() ajoute 1 mois par défaut.
DEBUTMOIS(date) Retourne la date du premier jour du mois.
DEBUTMOIS(DATE(3;2;18)) retourne 01.02.2018.
FINMOIS(date Retourne la date du dernier jour du mois.
FINMOIS(DATE(3;2;18)) retourne 29.02.2018.
MAINTENANT() Retourne le nombre de secondes écoulées depuis minuit.
 TEMPS(heure ; minute ; seconde)  Retourne le nombre de secondes de l’heure donnée en heures, minutes, secondes écoulées depuis minuit.
TEMPS(13;40;35) retourne 49’235.
Les paramètres absents sont complétés par l’heure courante.
TEMPS(;0;0) correspond au début de l’heure courante.
HEURE(temps) Convertit un temps en nombre d’heures (0 à 23). La partie fractionnaire exprime les minutes en 1/100e d’heure.HEURE(MAINTENANT())
HEURE(TEMPS(13;40;35))retourne 13.68.
MINUTE(temps) Retourne le nombre de minutes (0 à 59) écoulé à partir de l’heure pleine. La partie fractionnaire exprime les secondes en 1/100e de minute.
MINUTE(MAINTENANT())
MINUTE(TEMPS(13;40;35)) retourne 40.58.
SECONDE(temps) Convertit un temps en nombre de secondes (0 à 59) écoulées depuis la minute pleine. La partie fractionnaire est toujours nulle.
SECONDE(MAINTENANT())
SECONDE(TEMPS(13;40;35)) retourne 35.00.
PERIODE(date) Limite une date à la période courante. Une date inférieure à la période prend la valeur du début de la période, une date supérieure à la période prend la valeur de la fin de la période.
PERIODE(AUJOURDHUI())
DEBUTPERIODE() Retourne la date de début de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
DEBUTPERIODE(3) retourne la date de début de la 3ème période.
FINPERIODE() Retourne la date de fin de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
FINPERIODE(11) retourne la date de la fin de la 11ème période.
JFERIE(n) Retourne le ne jour férié du mois courant, en fonction de la liste introduite dans Entreprise – Jours fériés (§19.14 Jours fériés). Attention : le 1er jour de la liste est le JFERIE(0)
JOURS360(date1 ; date2) Détermine le nombre de jours entre deux dates en se basant sur une année commerciale de 12 x 30 jours.
JOURS360(DATE(1;2);DATE(1;3)) retourne 30, soit un mois commercial complet entre le 1er février et le 1er mars.

31.7Les chaînes de caractères

MAJUSCULE(chaîne) Transforme toute la chaîne en majuscules.
MAJUSCULE(« BonJour ») retourne « BONJOUR ».
MINUSCULE(chaîne) Transforme toute la chaîne en minuscules.
MINUSCULE(« BonJour ») retourne « bonjour ».
NOMPROPRE(chaîne) Transforme en majuscule la première lettre de chaque mot de la chaîne et les autres lettres en minuscules.
NOMPROPRE(« BonJour mONsieur louis ») retourne « Bonjour Monsieur Louis ».
GAUCHE(chaîne ; n) Extrait les n caractères de gauche de la chaîne.
GAUCHE(« Bonjour »;3) retourne « Bon ».
DROITE(chaîne ; n) Extrait les n caractères de droite de la chaîne.
DROITE(« Bonjour »;4) retourne « jour ».
MILIEU(chaîne ; position ; n) Extrait n caractères à partir de position (0 à n-1).
MILIEU(« Bonjour »;1;4) retourne « onjo ».
LONGUEUR(chaîne) Retourne le nombre de caractères composant la chaîne.
LONGUEUR(« Bonjour ») retourne 7.
TROUVE(chaîne ; critère) Cherche où se trouve le critère dans la chaîne.
TROUVE(« Bonjour »; »jou ») retourne 3.
Si le critère est au début, retourne la valeur 0.
TROUVE(« Bonjour »; »Bon ») retourne 0.
Si le critère n’est pas trouvé, la fonction retourne la valeur -1.
TROUVE(« Bonjour »; »x ») retourne -1.
REMPLACE(chaîne ; critère ; chaîne de substitution) remplace les occurrences du paramètre critère par le paramètre chaîne de substitution.
REMPLACE(« Bonjour »; »jou »; »SOI ») retourne « BonSOIr ».
Il est possible de mettre plusieurs couples critère – chaîne de substitution, dans ce cas chaque critère trouvé dans la chaîne est remplacé par la chaîne de substitution correspondante.REMPLACE(« Bonjour Mme Bijou »; « jou » ; « soi »

; « Mme » ; « M. »)

retourne « Bonsoir M. Bisoi ».

Le paramètre chaîne peut bien entendu être une rubrique.
REMPLACE(@Donnée:Nom de l’employé; »jou »; »soi »).

 NOMBRE(chaîne) Convertit une chaîne représentant un nombre, en nombre.
NOMBRE(« 1’123.45 ») retourne 1123.45.
MOT(chaîne ; position ; séparateurs) Extrait le nème élément (selon position) d’une chaîne, en considérant le séparateur défini.
MOT(« aa/bb/cc/dd »;2; »/ ») retourne « bb ».
Un séparateur ne peut pas être un mot ou une suite de caractères.
Si on spécifie plusieurs séparateurs, chaque séparateur est considéré individuellement. La fonction retourne la première occurrence trouvée.
MOT(« aa+bb/cc/dd »;2; »/+& ») retourne « bb ».
Si le séparateur à considérer est un caractère spécial, comme un tabulateur, il faut chercher son code ASCII avec la fonction CODECAR() décrite ci-dessous.
MOT(« aa<TAB>bb<TAB>cc/dd »;2;CODECAR(9)) retourne « bb ».
LIGNE(chaîne ; position) Extrait la nème ligne (selon le paramètre position) d’une rubrique de plusieurs lignes.
LIGNE(@Donnée:Adresse;2)
CODECAR(code_ascii) Retourne un caractère en fonction de son code ASCII. On peut donner une liste de codes.
CODECAR(65;66;9;67) retourne « AB<TAB>C ».
NOMRUBRIQUE() Retourne le nom de la rubrique. Utile pour permettre la modification du nom de la rubrique par un calcul (§19.2 Lieux de travail).
NOMRUBRIQUE()+ » « +@Donnée:Code d’impôt à la source
Il est également possible de mettre une rubrique en paramètre, la fonction retourne alors le texte correspondant au nom de la rubrique.
NOMRUBRIQUE(@Ind:Salaire horaire)
retourne le libellé de la rubrique tel qu’il a été modifié par l’utilisateur (§19.2 Lieux de travail).
TROUVEUNPARMI(chaîne ; caractères) Donne la position du premier caractère de la liste trouvé dans le texte. Le paramètre caractères est une chaîne donnant la liste des caractères à chercher.
TROUVEUNPARMI(« A B,C;D » ; « ;,. : ») retourne 3, soit la position de la première virgule. L’espace n’est pas trouvé car on n’a pas mis d’espace dans la liste des séparateurs.
OTE(chaîne ; position ; critères) Enlève les espaces, tabulateurs ou fins de ligne d’une chaîne.
OTE( » Bonjour « ) retourne «Bonjour».
Le paramètre position est optionnel :
S’il est omis, les caractères sont supprimés au début et à la fin de la chaîne.
S’il vaut 0, les caractères sont supprimés au début de la chaîne.
S’il vaut 1, les caractères sont supprimés à la fin de la chaîne. .
S’il vaut 2, les caractères sont supprimés au début et à la fin de la chaîne.
OTE( » Bonjour  » ; 0) retourne «Bonjour » .
OTE( » Bonjour  » ; 1) retourne « Bonjour».
OTE( » Bonjour  » ; 2) retourne «Bonjour».
Le paramètre optionnel critères est une liste de caractères qui seront tous supprimés s’ils se trouvent au début ou à la fin du texte traité. Chaque caractère de critères est considéré individuellement. Dès que le caractère de la chaîne n’est pas un des caractères listés dans critère, le traitement s’arrête.
OTE( » Bonjour » ; 0 ; « jour ») retourne «  Bonjour».
OTE( » Bonjour » ; 1 ; « jour ») retourne «  Bon».
OTE( » Bonjour » ; 2 ; « ujro ») retourne «  Bon».
OTE(« Bonjour  » ; 0 ; « ojur ») retourne «Bonjour ».
OTE(« Bonjour  » ; 1 ; « ojru ») retourne «Bonjour ».
OTE( » Bonjour  » ; 2 ; « jour ») retourne «  Bonjour  » (le caractère espace n’est pas spécifié dans la liste caractères à supprimer.
OTE(« Bonjour  » ; 2 ; « jo ur ») retourne «Bon».
OTE( » rujo Bonjour  » ; 2 ; « ur jo ») retourne «Bon».

31.8Spécialités

Les fonctions décrites ci-dessous ne se trouvent pas dans les listes des opérations du dialogue. Elles peuvent être utilisées en les tapant directement dans la formule.

SISOUMIS(« mode » ; expression) Evalue l’expression en ne prenant en compte que les rubriques soumises aux bruts déterminants selon le mode (voir la fonction CUMUL §31.2 Les totalisateurs).
SISOUMIS(« LPP »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
fait la somme des valeurs trouvées dans les champs pour autant qu’elles soient soumises à la base LPP.
Si l’une des valeurs est soumise mais pas l’autre, la valeur soumise sera prise en compte. Il n’est pas nécessaire que les 2 rubriques soient soumises.
SISOUMIS(« AVS »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
ne fonctionnera pas si l’une des deux rubriques est vide car l’addition d’un nombre avec vide donne encore vide (voir note §31 L’éditeur de calculs).
SINONSOUMIS(« mode » ; expression) Evalue l’expression en ne prenant en compte que les rubriques non soumises aux bruts déterminants selon le mode (voir CUMUL §31.2 Les totalisateurs).
SINONSOUMIS(« LPP »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
fait la somme des valeurs si elles ne sont pas soumis à la base LPP.
Si l’une des valeurs est soumise mais pas l’autre, la valeur soumise sera prise en compte. Il n’est pas nécessaire que les 2 rubriques soient soumises.
SINONSOUMIS(« AVS »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
ne fonctionnera pas si l’une des deux rubriques est vide car l’addition d’un nombre avec vide donne encore vide (voir note §31 L’éditeur de calculs).
AGELIMITE(limite ; mode) Détermine si l’âge de l’employé est inférieur à un âge limite.
AGELIMTE(18) retourne zéro si l’employé a 18 ans (dans l’année courante) ou plus. Retourne 1 s’il a 17 ans ou moins.
Le paramètre mode est optionnel. S’il vaut 1, la fonction tient compte du mois de naissance et retourne la valeur zéro dès le mois suivant l’anniversaire de l’âge concerné.
AGELIMTE(65;1) retourne zéro dès le mois suivant le 65e anniversaire.
POURPERIODE(colonne ; expression) Retourne la valeur de l’expression pour la période donnée.
La période peut être donnée par un nombre (n° de la colonne) ou une date.
POURPERIODE(DATE(15;3;2014);@Ind:Salaire mensuel)
retourne le salaire mensuel du mois de mars 2014.
FANIONPERIODE(colonne ; paramètre) Retourne 1 (=vrai) ou 0 (=faux) selon les réglages faits pour paramètre dans Entreprise – Périodes pour la colonne (1 à n) concernée.
paramètre = 1 : le 13e salaire doit être payé.
paramètre = 2 : les vacances doivent être payées.
paramètre = 3 : les vacances incluent le mois courant.
FANIONPERIODE(6;1)
retourne 1 si le 13e doit être versé en juin.
MONTANTPERIODE(valeur) Ramène un montant mensuel au prorata de la période courante.
Par exemple, si on a fait un salaire du 1er février au 15 mars inclus, MONTANTPERIODE(1000) retourne 1500 puisque la période correspond à un mois et demi.
NOMPERIODE(colonne) Retourne le nom de la colonne (1 à n) du tableau général.
NOMPERIODE(1) retourne habituellement « Janvier ».
POURLANGUE(langue ; expression) Evalue l’expression dans une langue donnée (0 = français, 1 = allemand, 2 = anglais, 3 = italien).
POURLANGUE(2;NOMPERIODE(1)) retourne « January ».
ASSURANCE(rubrique ; type ; mode) Retourne les valeurs en fonction de l’assurance de l’employé.
Le premier paramètre doit être la rubrique du nom de l’assurance attribué à l’employé (@Donnée:Assurance LPP, @Donnée:Assurance IJM, @Donnée:Assurance LAAC, …).
Le second paramètre (valeur 1 à 9) détermine le type d’information souhaitée :
1 : taux à appliquer (selon la tranche d’âge si LPP)
2 : plafond mensuel
3 : valeur de « soumis à partir de » pour la LPP, pour les assurances c’est la valeur de déduction fixe
4 : « montant à déduire » pour la LPP
5 : « montant minimum » pour le salaire coordonné de la LPP
8 : état du fanion « calcule sur base annuelle » pour la LPP
11 : taux de la cotisation employeur
31 : valeur fixe pour l’employeur
Toutes ces valeurs sont adaptées automatiquement à la période traitée et à l’âge de l’employé.
ASSURANCE(@Donnée:Assurance IJM;1)
retourne le taux de cotisation à l’assurance IJM de l’employé.
Le troisième paramètre est facultatif et permet de spécifier si la valeur retournée est calculée en mode mensuel ou annuel. Par défaut, le mode est mensuel. Ajoutez le paramètre 1 pour forcer le mode annuel.
ASSURANCE(@Donnée:Assurance IJM ; 4 ; 1)
retourne le montant à déduire, rapporté à la durée de la période le cas échéant.
IMPOT(code ; mode ; déterminant annuel) Retourne le taux à appliquer pour l’imposition à la source.
Le paramètre code doit obligatoirement être la rubrique donnant le code de l’impôt (@Donnée:Code d’impôt à la source).Le paramètre mode détermine le type d’information souhaité, cela peut être :
1 : taux selon le montant déterminant en 3ème paramètre
2 : retourne 1 si le calcul est annuel (0 pour mensuel)
3 : retourne 1 si le calcul annuel ne doit se faire qu’en fin de l’année
4 : retourne 1 si le calcul annuel n’est possible que si l’employé était présent toute l’année
5 : retourne 1 si le calcul final doit se faire selon le code de la dernière période
6 : retourne le nombre d’heures par mois à considérer
7 : retourne l’adresse de l’office tel qu’introduit sous Entreprise – Impôt source
8 : retourne le n° de contribuable de l’entreprise
9 : retourne le taux de la commission de perception
0 : retourne 1 si le calcul mensuel doit se faire rétroactivement.
ANNUEL(mode ; brut ; occasionnel ; prévision ; déduction) Fait une estimation du salaire déterminant annuel.
Le paramètre mode peut être :
0 : estimation en cours d’année
1 : détermination lors du dernier salaire
2 : extrapolation à partir du mois courant uniquement
3 : comme 1 mais limité aux dates d’entrée et de sortie de l’employé.
Le paramètre brut doit être le montant cumulé des indemnités soumises à l’impôt à la source pour la période courante.
Le paramètre occasionnel doit être le cumul des indemnités exceptionnelles soumises. Ces montants ne seront donc pas ramenés proportionnellement à l’année.
Le paramètre prévision permet d’ajouter les montants non encore payés, mais qui devraient l’être à la fin de l’année (indemnités vacances, 13e salaire).
Le paramètre déduction doit être les montants payés à l’avance sur les vacances et le 13e salaire.
Le logiciel prend encore en compte les dates des périodes ainsi que les dates d’entrée et de sortie de l’employé.
LISTEDEF(nombre ; texte) S’utilise pour définir le contenu à choix d’une rubrique de type liste. Chaque élément de la liste se compose d’une valeur numérique et d’un texte associé. Voyez l’exemple au §6.3 Les bases.
VARTEMP(nom ; expression) Mémorise le résultat de expression dans l’une des 50 variables temporaires à disposition. La valeur mémorisée peut être reprise avec VARTEMP(nom) sans second paramètre.
VARTEMP(« essai » ; 250) met la valeur 250 dans la variable « essai ».
VARTEMP(« essai ») retourne alors 250.
SI (VARTEMP(« essai » ; CUMUL (« AVS »)) > 0 ;
VARTEMP(« essai ») ;
VIDE())
Dans cet exemple, le calcul commence par mémoriser le total des montants soumis à l’AVS dans la variable temporaire « essai ».
Puis il teste si le cumul est > 0. Si oui, l’expression retourne le contenu de la variable « essai » (=le montant cumulé), sinon elle retourne vide.
C’est l’équivalent de
SI (CUMUL (« AVS ») > 0 ;
CUMUL (« AVS ») ;
VIDE())
mais cela évite de faire deux fois le cumul.
La variable temporaire (nom) est initialisée à VIDE() au début d’une impression, ou au début de chaque calcul si elle est utilisée ailleurs que pour une impression.
VARTEMP(index ; expression) Mémorise le résultat de expression dans l’une des 9 variables temporaires à disposition (index = 0 .. 9). La valeur mémorisée peut être reprise avec VARTEMP(index) sans second paramètre.
SI (VARTEMP(7 ; CUMUL (« AVS »)) > 0 ;
VARTEMP(7) ;
VIDE())
Ce calcul mémorise le total des valeurs soumises à l’AVS dans la variable temporaire 7 et retourne le contenu si le cumul est > 0.
La variable temporaire (index) est initialisée à VIDE() au début de chaque calcul, même lors d’une impression.
RECURSIF(rubriques) S’utilise pour forcer Crésus à faire un calcul itératif sur une valeur dépendant d’elle-même.
Exemple : pour déterminer la part employeur des charges sociales en partant d’un salaire brut-brut, qui inclut donc ces charges, il faut évaluer le total de ces charges, les déduire du salaire brut-brut, pour déterminer le salaire brut sur lequel on calculera les charges sociales, puis recommencer. Les charges sociales vont donc varier en fonction d’elles-mêmes.
RECURSIF(@Brut:Total des cotisations employeur)
DEBUG(expression) Affiche la formule et les étapes de son évaluation.
Expression peut être un calcul ou une rubrique.
DEBUG(C%(@Brut:Base AVS;@Coef:Taux AVS))
affiche
@Brut:Base AVS[Janvier] ==> 6500.
@Coef:Taux AVS[Janvier] ==> 5.15
C%(6500. ; 5.15) ==> 334.75

CACHE(expression)
Cache l’objet entier si le résultat de l’expression est nul.
CACHE(SI(@Donnée:Sexe de l’employé(e) = 0
; « Monsieur »))
S’il s’agit d’une employée, tout l’objet est caché, y compris son cadre et/ou fond.
COMPTE(chaîne ; critère) Compte le nombre d’occurrence de critère dans chaîne.
COMPTE(@Donnée:Divers1 ;  » ! ») compte le nombre de points d’exclamation trouvé dans la rubrique Divers1.
SWITCH(condition 0 ; 0 ; condition 1 ; 1 ; condition 2 ; 2 ; … ; condition n ; n) Retourne le résultat de l’expression 0 à n selon l’état de la dernière condition 0 à n évaluée.
Si la condition 0 est vraie, retourne le résultat de l’expression 0, si la condition 1 est vraie, retourne le résultat de l’expression 1,

C’est le résultat de l’expression de la dernière condition vraie évaluée qui est retourné.
SWITCH(@Donnée:Mois sélectionné >=1 ; « 1er trimestre »
; @Donnée:Mois sélectionné >=4 ; « 2e trimestre »
; @Donnée:Mois sélectionné >=7 ; « 3e trimestre »
; @Donnée:Mois sélectionné >=10 ; « 4e trimestre »)
retourne 1er, 2e, 3e ou 4e trimestre selon le mois où se trouve le curseur.
CASE(condition ; 0 ; 1 ; .. ; n) Retourne le résultat de l’opération 0 à n en fonction de la valeur de condition. Si condition vaut 0, retourne le résultat de l’opération 0, si condition vaut 1, retourne le résultat de l’opération 1, …
POURCHAQUE(objet ; expression) Répète expression pour toutes les occurrences de objet. Par exemple pour chacune des assurances LAA définies ou pour chaque code d’impôt à la source.
POURCHAQUE(@Donnée:Assurance LPP ; expression)
objet doit être la rubrique qui fait référence à l’assurance, au code d’impôt à la source ou au lieu de travail.
LIEUTRAVAIL(expression) Les lieux de travail définis pour l’entreprise – anciennement « succursales » – sont référencés par un n° d’identification supérieur ou égal à 300.
@Donnée:Lieu de travail de l’employé affiche ou imprime ce n° d’identification.
LIEUTRAVAIL(@E.Donnée:Lieux de travail)
retourne le nom du lieu de travail de l’employé.
Pour imprimer l’adresse et la localité du lieu de travail :
LIEUTRAVAIL(@E.Donnée:Adresse de l’entreprise)
+ « \n »
+ LIEUTRAVAIL(@E.Donnée:Localité de l’entreprise)
Cette expression peut également être formulée ainsi :
LIEUTRAVAIL(@E.Donnée:Adresse de l’entreprise
+ « \n »
+ @E.Donnée:Localité de l’entreprise)
Si le document concerne toute l’entreprise, la fonction LIEUTRAVAIL() retourne les données du siège principal de l’entreprise.
LIMITEPERIODES(condition ; expression) Permet de ne traiter que les mois où l’employé garde la même condition.
LIMITEPERIODES(@Donnée:Date d’entrée de l’employé
; TOTANNEE(@Brut:Salaire versé))
retourne le total du salaire versé pour la période d’engagement courante (jusqu’au mois courant).
COMPTA(rubrique ; paramètre)  Retourne les définitions comptables d’une rubrique (§19.11 Comptabilisation des rubriques).
La valeur retournée dépend du paramètre :
COMPTA(rubrique ; 1) : compte débit
COMPTA(rubrique ; 1.1) : compte débit employeur
COMPTA(rubrique ; 2) : compte crédit
COMPTA(rubrique ; 2.1) : compte crédit employeur
COMPTA(rubrique ; 3) : libellé
COMPTA(rubrique ; 3.1) : libellé de la part employeur
COMPTA(rubrique ; 4) : mode
COMPTA(rubrique ; 5) : code analytique
COMPTA(rubrique ; 5.1) : code analytique de la part employeur
COMPTA(rubrique ; 6) : code tva
Dans un bloc d’exportation « pour toutes les indemnités » (§20.5 Exporter des données), si le critère rubrique est vide, la fonction traite la rubrique courante de la boucle :
COMPTA(; 1.1) retourne le compte débit employeur de chaque rubrique traitée dans la boucle.
SPECIALOP(paramètre) Opérations particulières effectuées lors d’une impression ou lors d’une exportation. SPECIALOP() traite toutes les rubriques @Ind:* ou @Déd:*d’une ligne imprimée ou d’un bloc exporté « répété pour » (§20.5 Exporter des données).
SPECIALOP() s’applique sur la rubrique courante, en fonction de la valeur de paramètre.
SPECIALOP(90)
retourne le type du coefficient de la rubrique :
-1 : type vide
0 : jours
1 : heures
2 : %
3 : sans type (-)
SPECIALOP(91) retourne la valeur de la rubrique.
SPECIALOP(92) retourne le déterminant de la rubrique.
SPECIALOP(93) retourne le coefficient de la rubrique.
SPECIALOP(94) retourne le coefficient employeur de la rubrique.
SPECIALOP(95) retourne la valeur employeur de la rubrique.

SPECIALOP() est une valeur positive, même pour les déductions. Pour imprimer un signe « + » devant une déduction négative (un remboursement), il faut faire un calcul commeREMPLACE(« + » + CHAINE(0 – SPECIALOP(91) ; 2) ; « +- » ; « – » ; « +0.00 » ; «  »)

INFOASSURANCE(donnée:assurance ; paramètre) Retourne les diverses informations associées à l’assurance.
Tous les éléments retournés sont des textes.
La donnée:assurance peut être l’une des rubriques
@Donnée:Code LAA de l’employé
@Donnée:Assurance LAAC
@Donnée:Assurance LAAC (2ème)
@Donnée:Assurance IJM
@Donnée:Assurance IJM (2ème)
@Donnée:Assurance FT (Frais de traitement)
@Donnée:Assurance LPP
@Donnée:Assurance LPP (2ème)
La valeur retournée dépend du paramètre. Dans les exemples ci-dessous, on teste l’assurance AA complémentaire d’un employé, dont le code est A et qui concerne le groupe Personnel du bureau.
0 : retourne le nom complet avec le code.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 0)
retourne A2 : Personnel du bureau, cat. 2
1 : retourne le code seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 1)
retourne A2
2 : retourne le nom et la catégorie.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 2)
retourne Personnel du bureau, cat. 2
3 : retourne le code et le nom seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 3)
retourne A2 : Personnel du bureau
4 : retourne la catégorie seulement, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 4)
retourne cat. 2
5 : retourne le nom seul, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 5)
retourne Personnel de bureau
6 : retourne le type, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 6)
retourne A2
7 : retourne le groupe de personnes, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 7)
retourne A
8 : retourne la catégorie
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 8)
retourne 2
11 : retourne le numéro Swissdec de l’assureur
12 : retourne le numéro de client
13 : retourne le numéro de contrat
14 : retourne le nom de l’assureur
15 : retourne l’adresse de l’assureur
16 : retourne le npa de l’assureur
17 : retourne la ville de l’assureur
TOTEMPLOYESCSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n) et
TOTANNEECSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n)
S’utilisent lors d’une exportation pour produire un tableau avec le cumul des données qui répondent au critère (§20.5.2 Les opérateurs spéciaux TOTEMPLOYESCSV() et TOTANNEECSV())
ADRESSE(mode ; rubrique) Retourne l’élément mode du champ rubrique de type NPA/Rue/Localité (§19.7.3 Rubriques de type Données).
La valeur retournée dépend de mode :
0 : NPA Localité
1 : Rue
2 : NPA
3 : Localité
4 : Canton
5 : Pays (code ISO)
6 : Pays (en toutes lettres)
ADRESSE(0 ; @Donnée:Adresse du mandataire)
retourne le NPA et localité du mandataire.
SETDATA(rubrique ; expression ; paramètre)  S’utilise pour affecter une valeur à une rubrique. Peut être utilisé dans des expressions complexes.
paramètre est facultatif et spécifie la période de paie concernée. S’il est omis, l’expression est affectée à la valeur globale de la rubrique.
SETDATA(@Ind:Autres frais forfaitaires ; 200 ; 2)
met 200.– dans les frais forfaitaires de l’employé en février.
TOTEMPLOYES(SETDATA(@Donnée:Jours vacances par année;25))
met 25 jours dans la valeur globale de tous les employés.

Attention : Aucun contrôle n’est fait lors d’un SETDATA(), il est possible de modifier des salaires existants, mais ils ne sont pas recalculés.

OP (expression 1 | expression 2 | … | expression n) S’utilise pour effectuer plusieurs calculs dans la même formule.
OP(VARTEMP(« base »
; DEFAUT(@Ind:Salaire mensuel
; @Ind:Salaire horaire))
| VARTEMP(« taux » ; 12)
| VARTEMP(« bonus » ; C%(VARTEMP(« base »)
; VARTEMP(« taux »)))
| SETDATA(@Ind:Bonus ; VARTEMP(« bonus »)))
MESSINFO(mode ; texte) S’utilise dans le calcul Obligatoire selon de la définition d’une rubrique pour affiche un message dans une bulle d’aide ou après avoir entré une valeur lors de la saisie de données.
Le paramètre mode détermine l’icône affichée dans le champ et le niveau du message :
« INFO » : le message est une information.
« WARNING » : c’est un avertissement, mais il n’est pas impératif de s’y conformer pour quitter la saisie. Le point d’exclamation est rouge pâle, mais le champ de saisie est blanc.
« ERROR » : c’est un avertissement important, mais il n’est pas impératif de s’y conformer pour quitter la saisie. Le point d’exclamation et le champ de saisie sont rouge pâle.
« KO » : c’est un avertissement incontournable, tant que la valeur entrée ne répond pas au critère, il ne sera pas possible de valider la saisie. Le point d’exclamation est rouge vif.

 

POURFICHIER(fichier ; expression_debut ; expression_ligne ; expression_fin) Permet d’ouvrir un fichier de type texte et d’en traiter le contenu.
expression_début est évaluée une fois au début du traitement
expression_ligne est appliquée sur chaque ligne du fichier
expression_fin est évaluée à la fin du traitement.
La fonction n’est évaluée qu’une seule fois par fichier, ensuite elle retourne toujours le résultat évalué cette fois-là.
Si on souhaite plusieurs résultats, il faut mettre un critère à la suite du nom de fichier après l’un des caractères |;¦?*/ par exemple
« %EXEPATH%ListeCommunes.txt; » + @Donnée:NPA de l’employé
Dans ce cas POURFICHIER sera évalué pour chaque NPA différent rencontré dans le fichier Crésus.
expression_ligne est évaluée pour chaque ligne du fichier lu.
Le contenu de la ligne est retourné dans VARTEMP(« #Line »).
On peut utiliser les fonctions habituelles sur la variable, comme
MOT(VARTEMP(« #Line »); 5 ; « ; ») dans un fichier CSV pour trouver le 5ème élément.
Le résultat de l’expression (toujours une chaîne de caractère) est ajouté à la chaîne retournée par la fonction.
Par exemple :
POURFICHIER
(« %EXEPATH%\\NuPost.TXT » ;
« villes:  » ;
SI(MOT(VARTEMP(« #Line ») ; 3 ; « \t ») = « 1400 » ;
MOT(VARTEMP(« #Line ») ; 5 ; « \t ») + « , « ) ;
« npa = 1400 »
)
ouvre le fichier NuPost.txt
met le texte villes: au début de la chaîne à retourner
évalue chaque ligne du fichier : si le 3e mot de la ligne est 1400, ajoute le 5e mot de la ligne et une virgule à la chaîne à retourner
ajoute le texte npa = 1400 à la fin de la chaîne à retourner
ce calcul retourne ceci
villes: Cheseaux-Noréaz, Yverdon-les-Bains, Yverdon 1, Yverdon 2, Yverdon 3, Yverdon car postal, Yverdon 1 Dist, Yverdon Caserne, npa = 1400
DONNEE(mode ; expression) Retourne la valeur calculée par Crésus ou la valeur introduite par l’utilisateur en fonction de mode.
mode = 1 : retourne la valeur calculée par Crésus
mode = 2 : retourne la valeur saisie par l’utilisateur
La valeur retournée est vide si elle n’existe pas.
DONNEE (1 ; @Ind:Salaire mensuel) retourne le salaire mensuel calculé pour le mois, même s’il a été modifié manuellement lors de la saisie du salaire.
POURLANGUE(paramètre ; expression) Retourne l’expression dans la langue en fonction de paramètre.
paramètre peut être
0 : français
1 : allemand
2 : anglais
3 : italien
Suggest Edit

Recherche