19.1L'éditeur de calcul
L’éditeur de calcul de Crésus Salaires permet de créer des formules personnalisées pour obtenir des résultats précis : calculer un montant, afficher un texte conditionnel, insérer une date, ou combiner diverses informations provenant de différentes rubriques.

L’éditeur de calcul affiche trois sections :
- La zone de formule (en haut) : champ dans lequel on écrit le calcul. On combine des chiffres, des opérations, des fonctions (par ex. SOMME() ou SI()), ou encore des rubriques prédéfinies (comme Salaire mensuel ou Nom de l’employé).
- Opérations (au centre) : liste de fonctions disponibles, classées par type.
-
Variables (en bas) : ensemble des rubriques disponibles dans Crésus. Double-cliquer sur une rubrique ou une fonction l’insère directement dans la zone de formule.
Ce chapitre vous présente une grande partie des fonctions générales de l’éditeur de calcul. D’autres fonctions moins courantes sont également décrites dans cet article de notre base de connaissance.
19.1.1Quelques principes de base
-
Les nombres s’écrivent manuellement et les décimales sont séparées par un point (pas une virgule) : 2000 * 0.08 calcule 8 % de 2000.
-
Les chaînes de texte (mots ou phrases) doivent être saisies entre guillemets : "Bonjour" ou "à verser".
-
Les rubriques doivent être insérées telles qu’elles apparaissent dans la liste (par ex. @Ind:Salaire mensuel), nous vous déconseillons donc de les saisir manuellement.
-
Les espaces ne sont pas pris en compte dans le calcul mais rendent la lecture plus claire (2000+300 = 2000 + 300). Si vous souhaitez inclure un espace dans le résultat du calcul (par exemple entre le prénom et le nom de l’employé), il faut saisir dans la zone de formule un espace entre guillemet : " ".
-
Les sauts de ligne ne changent pas le calcul, mais permettent d’aérer les longues formules. Si vous souhaitez inclure un saut de ligne dans le résultat du calcul (par exemple entre un nom et une adresse), il faut saisir dans la zone de formule la fonction FINLIGNE() ou "\n".
-
Les nombres s’écrivent manuellement et les décimales sont séparées par un point (pas une virgule) :
2000 * 0.08calcule 8 % de 2000. -
Les chaînes de texte (mots ou phrases) doivent être saisies entre guillemets :
"Bonjour"ou"à verser". -
Les rubriques doivent être insérées telles qu’elles apparaissent dans la liste (par ex.
@Ind:Salaire mensuel), nous vous déconseillons donc de les saisir manuellement. -
Les espaces ne sont pas pris en compte dans le calcul mais rendent la lecture plus claire (
2000+300=2000 + 300). Si vous souhaitez inclure un espace dans le résultat du calcul (par exemple entre le prénom et le nom de l’employé), il faut saisir dans la zone de formule un espace entre guillemet :" ". -
Les sauts de ligne ne changent pas le calcul, mais permettent d’aérer les longues formules. Si vous souhaitez inclure un saut de ligne dans le résultat du calcul (par exemple entre un nom et une adresse), il faut saisir dans la zone de formule la fonction
FINLIGNE()ou"\n".
19.1.2Les fonctions "Opération" Les opérateurs arithmétiques :
Dans l’éditeur de calcul, les opérateurs suivants servent aux calculs numériques :
-
+ additionne deux valeurs. Exemple : le salaire de base + une prime.
-
– soustrait une valeur. Exemple : le salaire brut – une retenue.
-
* multiplie deux valeurs. Exemple : nombre d’heures * taux horaire.
-
/ divise une valeur par une autre. Exemple : montant / nombre de jours.
Les fonctions mathématiques et statistiques :
Ces fonctions permettent d’affiner ou de contrôler les calculs numériques. Elles sont utiles par exemple pour arrondir un résultat, comparer plusieurs montants ou manipuler des valeurs intermédiaires.
MIN(valeur1 ; valeur2) : retourne la plus petite des deux valeurs.
Exemple : MIN(1000 ; 1200) retourne « 1200 ».
MAX(valeur1 ; valeur2) : retourne la plus grande des deux valeurs.
Exemple : MAX(1000 ; 1200) retourne « 1200 ».
SOMME(valeur1 ; valeur 2 ; ...) : retourne la somme d’une liste de nombres.
Exemple : SOMME(12;45;-3;28) retourne « 82 ».
MOYENNE(valeur1 ; valeur2 ; …) : calcule la moyenne des valeurs indiquées.
Exemple : MOYENNE(100 ; 200 ; 300) retourne « 200 ».
Les totalisateurs :
Les fonctions de totalisation permettent de cumuler des valeurs sur plusieurs dimensions : tous les employés, une période donnée (année, trimestre, mois précédent), ou encore selon des critères particuliers. Elles ne renvoient donc pas uniquement la valeur d’une rubrique pour un employé et un mois donnés, mais calculent des sommes globales.
TOTEMPLOYES()
Additionne les valeurs d’une rubrique pour tous les employés.
Exemple : obtenir le total des salaires bruts versés dans l’entreprise.
TOTANNEE()
Calcule le total depuis le début de l’année jusqu’au mois courant, en tenant compte uniquement des périodes où un salaire a été calculé.
Exemple : total des cotisations AC pour l’année en cours.
TOUTANNEE()
Comme TOTANNEE, mais inclut également les mois sans salaire. On peut ainsi ajouter une valeur par défaut aux périodes vides.
TOTTRIMESTRE()
Cumule les valeurs sur le trimestre où se situe le mois sélectionné.
Exemple : total des remboursements kilométriques pour le trimestre.
PRECEDENT()
Donne la valeur d’une rubrique pour la période précédente (y compris celle de l’année passée si l’on est en janvier).
Exemple : montant du salaire versé le mois dernier.
TOTPRECEDENT()
Additionne toutes les valeurs des périodes écoulées.
La fonction CUMUL() :
Cette fonction additionne toutes les indemnités selon leur assujettissement à un brut déterminant ou selon leur affectation dans le certificat de salaire.
Par exemple :
-
CUMUL("AVS") donne le total soumis à l’AVS.
-
CUMUL("2.1") donne le total des montants reportés en case 2.1 du certificat de salaire.
Les critères utilisables sont nombreux (BRUT, NET, VERSE, AVS, AC, LAA, LPP, etc.).
On peut combiner plusieurs critères avec ET (&) ou OU (|), ou exclure un critère avec ! (par ex. !AVS pour les indemnités non soumises à l’AVS).
Les opérateurs arithmétiques :
Dans l’éditeur de calcul, les opérateurs suivants servent aux calculs numériques :
-
+additionne deux valeurs. Exemple : le salaire de base + une prime. -
–soustrait une valeur. Exemple : le salaire brut – une retenue. -
*multiplie deux valeurs. Exemple : nombre d’heures * taux horaire. -
/divise une valeur par une autre. Exemple : montant / nombre de jours.
Les fonctions mathématiques et statistiques :
Ces fonctions permettent d’affiner ou de contrôler les calculs numériques. Elles sont utiles par exemple pour arrondir un résultat, comparer plusieurs montants ou manipuler des valeurs intermédiaires.
MIN(valeur1 ; valeur2): retourne la plus petite des deux valeurs.
Exemple : MIN(1000 ; 1200) retourne « 1200 ».
MAX(valeur1 ; valeur2): retourne la plus grande des deux valeurs.
Exemple : MAX(1000 ; 1200) retourne « 1200 ».
SOMME(valeur1 ; valeur 2 ; ...): retourne la somme d’une liste de nombres.
Exemple : SOMME(12;45;-3;28) retourne « 82 ».
MOYENNE(valeur1 ; valeur2 ; …): calcule la moyenne des valeurs indiquées.
Exemple : MOYENNE(100 ; 200 ; 300) retourne « 200 ».
Les totalisateurs :
Les fonctions de totalisation permettent de cumuler des valeurs sur plusieurs dimensions : tous les employés, une période donnée (année, trimestre, mois précédent), ou encore selon des critères particuliers. Elles ne renvoient donc pas uniquement la valeur d’une rubrique pour un employé et un mois donnés, mais calculent des sommes globales.
TOTEMPLOYES()
Additionne les valeurs d’une rubrique pour tous les employés.
Exemple : obtenir le total des salaires bruts versés dans l’entreprise.
TOTANNEE()
Calcule le total depuis le début de l’année jusqu’au mois courant, en tenant compte uniquement des périodes où un salaire a été calculé.
Exemple : total des cotisations AC pour l’année en cours.
TOUTANNEE()
Comme TOTANNEE, mais inclut également les mois sans salaire. On peut ainsi ajouter une valeur par défaut aux périodes vides.
TOTTRIMESTRE()
Cumule les valeurs sur le trimestre où se situe le mois sélectionné.
Exemple : total des remboursements kilométriques pour le trimestre.
PRECEDENT()
Donne la valeur d’une rubrique pour la période précédente (y compris celle de l’année passée si l’on est en janvier).
Exemple : montant du salaire versé le mois dernier.
TOTPRECEDENT()
Additionne toutes les valeurs des périodes écoulées.
La fonction CUMUL() :
Cette fonction additionne toutes les indemnités selon leur assujettissement à un brut déterminant ou selon leur affectation dans le certificat de salaire.
Par exemple :
-
CUMUL("AVS")donne le total soumis à l’AVS. -
CUMUL("2.1")donne le total des montants reportés en case 2.1 du certificat de salaire.
Les critères utilisables sont nombreux (BRUT, NET, VERSE, AVS, AC, LAA, LPP, etc.).
On peut combiner plusieurs critères avec ET (&) ou OU (|), ou exclure un critère avec ! (par ex. !AVS pour les indemnités non soumises à l’AVS).
19.1.3Les fonctions "Test" La fonction SI() :
La fonction SI() permet de définir un résultat différent selon qu’une condition est vraie ou fausse. Elle s’écrit de la manière suivante :
SI(condition ; valeur si vrai ; valeur si faux)
-
condition : une comparaison ou une combinaison de comparaisons (par ex. Salaire > 0).
-
valeur si vrai : le résultat à afficher si la condition est vraie.
-
valeur si faux : le résultat à afficher si la condition est fausse.
Exemple 1 (texte selon salaire) :
SI(@Ind:Salaire mensuel > 0 ; "à verser" ; "à retenir")
Résultat : affiche « à verser » si le salaire est positif, sinon « à retenir ».
Exemple 2 (montant minimum) :
SI(@Ind:Salaire mensuel < 2000 ; 2000 ; @Ind:Salaire mensuel)
Résultat : si le salaire est inférieur à 2000, retourne 2000, sinon le salaire réel.
Exemple 3 (condition combinée) :
SI((@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0) ; "cotisation due" ; "aucune cotisation")
Résultat : affiche « cotisation due » si le salaire est positif et que le taux AVS est différent de zéro.
Les opérateurs de comparaison :
Ces opérateurs permettent de tester une condition :
= signifie « égal à ». Exemple : vérifier si une rubrique est égale à 0.
<> signifie « différent de ».
< signifie « plus petit que ». Exemple : comparer un taux avec un seuil minimal.
<= signifie « plus petit ou égal à ».
> signifie « plus grand que ». Exemple : tester si le nombre d’heures est supérieur à 40.
>= signifie « plus grand ou égal à ».
Les opérateurs logiques :
Une comparaison retourne toujours une valeur logique : vrai ou faux.
Il est possible d’associer plusieurs conditions grâce aux opérateurs logiques :
-
ET vérifie que deux conditions sont vraies en même temps.
-
OU vérifie qu’au moins une des conditions est vraie.
-
NON inverse le résultat d’une condition (vrai devient faux, et inversement).
Par exemple :
(@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0)
Résultat : cette condition retourne VRAI si le salaire est positif et si le taux AVS est différent de zéro.
La fonction SI() :
La fonction SI() permet de définir un résultat différent selon qu’une condition est vraie ou fausse. Elle s’écrit de la manière suivante :
SI(condition ; valeur si vrai ; valeur si faux)
-
condition : une comparaison ou une combinaison de comparaisons (par ex.
Salaire > 0). -
valeur si vrai : le résultat à afficher si la condition est vraie.
-
valeur si faux : le résultat à afficher si la condition est fausse.
Exemple 1 (texte selon salaire) :
SI(@Ind:Salaire mensuel > 0 ; "à verser" ; "à retenir")
Résultat : affiche « à verser » si le salaire est positif, sinon « à retenir ».
Exemple 2 (montant minimum) :
SI(@Ind:Salaire mensuel < 2000 ; 2000 ; @Ind:Salaire mensuel)
Résultat : si le salaire est inférieur à 2000, retourne 2000, sinon le salaire réel.
Exemple 3 (condition combinée) :
SI((@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0) ; "cotisation due" ; "aucune cotisation")
Résultat : affiche « cotisation due » si le salaire est positif et que le taux AVS est différent de zéro.
Les opérateurs de comparaison :
Ces opérateurs permettent de tester une condition :
=signifie « égal à ». Exemple : vérifier si une rubrique est égale à 0.
<>signifie « différent de ».
<signifie « plus petit que ». Exemple : comparer un taux avec un seuil minimal.
<=signifie « plus petit ou égal à ».
>signifie « plus grand que ». Exemple : tester si le nombre d’heures est supérieur à 40.
>=signifie « plus grand ou égal à ».
Les opérateurs logiques :
Une comparaison retourne toujours une valeur logique : vrai ou faux.
Il est possible d’associer plusieurs conditions grâce aux opérateurs logiques :
-
ETvérifie que deux conditions sont vraies en même temps. -
OUvérifie qu’au moins une des conditions est vraie. -
NONinverse le résultat d’une condition (vrai devient faux, et inversement).
Par exemple :
(@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0)
Résultat : cette condition retourne VRAI si le salaire est positif et si le taux AVS est différent de zéro.
19.1.4Les fonctions "Conversion"
ARRONDI(valeur ; décimales) : arrondit une valeur au nombre de décimales souhaité.
Exemple : ARRONDI(123.456 ; 2) retourne « 123.46 ».
INT(valeur) : retourne uniquement la partie entière d’un nombre.
Exemple : INT(123.456) retourne « 123 ».
FRAC(valeur) : retourne uniquement les décimales d’un nombre.
Exemple : FRAC(12.775) retourne « 0.775 ».
Les fonctions DEFAUT() et VIDE() :
DEFAUT(rubrique ; valeur de substitution) : si la rubrique spécifiée est vide, la remplace par la valeur de substitution indiquée.
Exemple : DEFAUT(@Ind:Salaire mensuel ; 100) retourne le montant du salaire s’il y en a un, sinon « 100 ».
VIDE() : retourne un blanc (vide) au lieu d’une valeur.
Exemple : SI(@Coef:Jours travaillés>0 ; @Coef:Jours travaillés ; VIDE()) n’affiche rien plutôt que « 0 ».
SI(VIDE(rubrique);valeur si vrai; valeur si faux) : retourne la valeur 1 (vrai) si la rubrique est vide, sinon la valeur 0 (faux).
Exemple : SI(VIDE(@Ind:Salaire mensuel); "à l’heure"; "au mois") retourne « à l’heure » si le salaire mensuel est vide, « au mois » dans le cas contraire.
Les fonctions CHAINE() :
Pour insérer une rubrique dans un texte, il faut distinguer deux cas :
Si la rubrique est déjà du texte (nom, prénom, adresse), il n’est pas nécessaire de la convertir :
"Employé : " + @Donnée:Nom de l'employé
Résultat : « Employé : Dupont ».
Si la rubrique est un nombre ou une date (salaire, taux, date d’entrée), il faut convertir la valeur en texte (ou chaîne de caractères) avec la fonction CHAINE(). Cette fonction s’écrit de cette façon :
CHAINE(valeur ; décimales)
-
valeur : ce qui doit être converti en texte (par ex. un salaire, une date, un pourcentage).
-
décimales : le nombre de chiffres à afficher après la virgule.
Par exemple :
"Montant : " + CHAINE(@Ind:Salaire mensuel ; 2)
Résultat : « Montant : 4500.00 »
CHAINEMOIS(mois ; langue)
Retourne le nom du mois (de 1 à 12) et, éventuellement (le second paramètre est optionnel), dans la langue indiquée (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
Par exemple :
CHAINEMOIS(2)
Résultat : « février »
CHAINEMOIS(7 ; 1)
Résultat : « Juli »
CHAINEJDLS(jour ; langue)
Retourne le nom du jour de la semaine (de 1 à 7) et, éventuellement (le second paramètre est optionnel), dans la langue indiquée (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
Par exemple :
CHAINEJDLS(2)
Résultat : « mardi »
CHAINEJDLS(1;2)
Résultat : « Monday »
ARRONDI(valeur ; décimales): arrondit une valeur au nombre de décimales souhaité.
Exemple : ARRONDI(123.456 ; 2) retourne « 123.46 ».
INT(valeur): retourne uniquement la partie entière d’un nombre.
Exemple : INT(123.456) retourne « 123 ».
FRAC(valeur): retourne uniquement les décimales d’un nombre.
Exemple : FRAC(12.775) retourne « 0.775 ».
Les fonctions DEFAUT() et VIDE() :
DEFAUT(rubrique ; valeur de substitution): si la rubrique spécifiée est vide, la remplace par la valeur de substitution indiquée.
Exemple : DEFAUT(@Ind:Salaire mensuel ; 100) retourne le montant du salaire s’il y en a un, sinon « 100 ».
VIDE(): retourne un blanc (vide) au lieu d’une valeur.
Exemple : SI(@Coef:Jours travaillés>0 ; @Coef:Jours travaillés ; VIDE()) n’affiche rien plutôt que « 0 ».
SI(VIDE(rubrique);valeur si vrai; valeur si faux): retourne la valeur 1 (vrai) si la rubrique est vide, sinon la valeur 0 (faux).
Exemple : SI(VIDE(@Ind:Salaire mensuel); "à l’heure"; "au mois") retourne « à l’heure » si le salaire mensuel est vide, « au mois » dans le cas contraire.
Les fonctions CHAINE() :
Pour insérer une rubrique dans un texte, il faut distinguer deux cas :
Si la rubrique est déjà du texte (nom, prénom, adresse), il n’est pas nécessaire de la convertir :
"Employé : " + @Donnée:Nom de l'employé
Résultat : « Employé : Dupont ».
Si la rubrique est un nombre ou une date (salaire, taux, date d’entrée), il faut convertir la valeur en texte (ou chaîne de caractères) avec la fonction CHAINE(). Cette fonction s’écrit de cette façon :
CHAINE(valeur ; décimales)
-
valeur : ce qui doit être converti en texte (par ex. un salaire, une date, un pourcentage).
-
décimales : le nombre de chiffres à afficher après la virgule.
Par exemple :
"Montant : " + CHAINE(@Ind:Salaire mensuel ; 2)
Résultat : « Montant : 4500.00 »
CHAINEMOIS(mois ; langue)
Retourne le nom du mois (de 1 à 12) et, éventuellement (le second paramètre est optionnel), dans la langue indiquée (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
Par exemple :
CHAINEMOIS(2)
Résultat : « février »
CHAINEMOIS(7 ; 1)
Résultat : « Juli »
CHAINEJDLS(jour ; langue)
Retourne le nom du jour de la semaine (de 1 à 7) et, éventuellement (le second paramètre est optionnel), dans la langue indiquée (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
Par exemple :
CHAINEJDLS(2)
Résultat : « mardi »
CHAINEJDLS(1;2)
Résultat : « Monday »
19.1.5Les fonctions "Pourcentage" C%(montant ; taux) : Calcule le pourcentage d’un montant.
Exemple : C%(20 ; 7) retourne « 1.4 » (= 7% de 20)
A%(montant ; taux) : Ajoute un pourcentage à un montant.
Exemples : A%(20 ; 7) retourne « 21.4 » ; A%(20 ; -7) retourne « 18.6 »
S%(montant ; taux) : Calcule la valeur qu’avait un montant avant qu’on ne lui ajoute un pourcentage.
Exemple : S%(21.4 ; 7) retourne « 20 »
M%(montant ; taux) : Calcule la valeur ajoutée à un montant augmenté d’un pourcentage.
Exemple : M%(21.4 ; 7) retourne « 1.4 »
T%(montant 1 ; montant 2) : Calcule le pourcentage entre deux montants.
Exemple : T%(21.4 ; 20) retourne « 7 »
C%(montant ; taux) : Calcule le pourcentage d’un montant.
Exemple : C%(20 ; 7) retourne « 1.4 » (= 7% de 20)
A%(montant ; taux) : Ajoute un pourcentage à un montant.
Exemples : A%(20 ; 7) retourne « 21.4 » ; A%(20 ; -7) retourne « 18.6 »
S%(montant ; taux) : Calcule la valeur qu’avait un montant avant qu’on ne lui ajoute un pourcentage.
Exemple : S%(21.4 ; 7) retourne « 20 »
M%(montant ; taux) : Calcule la valeur ajoutée à un montant augmenté d’un pourcentage.
Exemple : M%(21.4 ; 7) retourne « 1.4 »
T%(montant 1 ; montant 2) : Calcule le pourcentage entre deux montants.
Exemple : T%(21.4 ; 20) retourne « 7 »
19.1.6Les fonctions "Date" Ces fonctions permettent de travailler avec des dates : en extraire une partie (jour, mois, année), calculer une durée ou mettre une date en forme.
AUJOURDHUI() : retourne la date du jour (date système).
DATE(jour ; mois ; année) : retourne une date spécifiée au format jj.mm.aaaa.
Exemple : DATE(25;12;18) retourne « 25.12.2018 ».
JOUR(date) : retourne le jour du mois (1 à 31).
Exemple : JOUR(@Donnée:Date d’entrée) retourne « 15 » si la date est le 15.
MOIS(date) : retourne le mois (1 à 12).
Exemple : MOIS(@Donnée:Date d’entrée) retourne « 3 » si la date est en mars.
ANNEE(date) : retourne l’année sur 4 chiffres.
Exemple : ANNEE(@Donnée:Date d’entrée) retourne « 2025 ».
JDSL(date) : retourne le jour de la semaine (1 = lundi à 7 = dimanche) de la date indiquée.
Exemple : JDSL(DATE(28;3;14)) retourne « 5 » (vendredi).
SEMAINE(date) : convertir une date en numéro de semaine (0 à 53). Les décimales correspondent au nombre de jour en centièmes depuis le début de la semaine (lundi = 0 ; mardi = 0.14 ; etc. jusqu’à dimanche = 0.86). Vous pouvez bien sûr utiliser la fonction INT pour supprimer les décimales.
Exemple : SEMAINE(DATE(28;3;14)) retourne « 13.57 » (vendredi de la 13ème semaine).
ADDMOIS(date ; nombre) : ajoute un ou plusieurs mois à une date donnée.
Exemple : ADDMOIS(DATE(15;5;25);2) retourne « 15.04.2025 ».
DEBUTMOIS(date) : retourne la date du premier jour du mois.
Exemple : DEBUTMOIS(DATE(3;2;25)) retourne « 01.02.2025 ».
-
FINMOIS(date) : retourne la date du dernier jour du mois.
Ces fonctions permettent de travailler avec des dates : en extraire une partie (jour, mois, année), calculer une durée ou mettre une date en forme.
AUJOURDHUI(): retourne la date du jour (date système).
DATE(jour ; mois ; année): retourne une date spécifiée au format jj.mm.aaaa.
Exemple : DATE(25;12;18) retourne « 25.12.2018 ».
JOUR(date): retourne le jour du mois (1 à 31).
Exemple : JOUR(@Donnée:Date d’entrée) retourne « 15 » si la date est le 15.
MOIS(date): retourne le mois (1 à 12).
Exemple : MOIS(@Donnée:Date d’entrée) retourne « 3 » si la date est en mars.
ANNEE(date): retourne l’année sur 4 chiffres.
Exemple : ANNEE(@Donnée:Date d’entrée) retourne « 2025 ».
JDSL(date): retourne le jour de la semaine (1 = lundi à 7 = dimanche) de la date indiquée.
Exemple : JDSL(DATE(28;3;14)) retourne « 5 » (vendredi).
SEMAINE(date): convertir une date en numéro de semaine (0 à 53). Les décimales correspondent au nombre de jour en centièmes depuis le début de la semaine (lundi = 0 ; mardi = 0.14 ; etc. jusqu’à dimanche = 0.86). Vous pouvez bien sûr utiliser la fonctionINTpour supprimer les décimales.
Exemple : SEMAINE(DATE(28;3;14)) retourne « 13.57 » (vendredi de la 13ème semaine).
ADDMOIS(date ; nombre): ajoute un ou plusieurs mois à une date donnée.
Exemple : ADDMOIS(DATE(15;5;25);2) retourne « 15.04.2025 ».
DEBUTMOIS(date): retourne la date du premier jour du mois.
Exemple : DEBUTMOIS(DATE(3;2;25)) retourne « 01.02.2025 ».
-
FINMOIS(date): retourne la date du dernier jour du mois.
19.1.7Les fonctions "Chaîne" Ces fonctions permettent de manipuler du texte : transformer une chaîne de caractères, en extraire une partie ou la mettre en forme.
MAJUSCULE(texte) : affiche un texte en majuscules.
Exemple : MAJUSCULE("Dupont") retourne DUPONT.
MINUSCULE(texte) : affiche un texte en minuscules.
Exemple : MINUSCULE("Dupont") retourne dupont.
NOMPROPRE(texte) : Met la première lettre de chaque mot de la chaîne de caractères en lettre majuscule et les autres lettres en minuscules.
GAUCHE(texte ; nombre) : extrait le nombre de caractères souhaités en partant depuis la gauche.
Exemple : GAUCHE("Bonjour";3) retourne « Bon ».
DROITE(texte ; nombre) : extrait le nombre de caractères souhaités en partant depuis la droite.
MILIEU(texte ; position ; nombre) : extrait le nombre de caractères souhaités depuis la position indiquée (première lettre du texte = 0).
LONGUEUR(texte): affiche le nombre de caractères (espaces compris) d’un texte.
Exemple : LONGUEUR("Jean") retourne 4.
TROUVE(texte ; critère) : indique à quelle position (en partant de 0) le critère souhaité se situe dans le texte (ou chaîne de caractères.
Exemple : TROUVE("Bonjour";"jou") retourne « 3 ».
REMPLACE(texte ; critère ; texte de substitution) : remplace le paramètre critère par un texte de substitution.
Ces fonctions permettent de manipuler du texte : transformer une chaîne de caractères, en extraire une partie ou la mettre en forme.
MAJUSCULE(texte): affiche un texte en majuscules.
Exemple : MAJUSCULE("Dupont") retourne DUPONT.
MINUSCULE(texte): affiche un texte en minuscules.
Exemple : MINUSCULE("Dupont") retourne dupont.
NOMPROPRE(texte): Met la première lettre de chaque mot de la chaîne de caractères en lettre majuscule et les autres lettres en minuscules.
GAUCHE(texte ; nombre): extrait le nombre de caractères souhaités en partant depuis la gauche.
Exemple : GAUCHE("Bonjour";3) retourne « Bon ».
DROITE(texte ; nombre): extrait le nombre de caractères souhaités en partant depuis la droite.
MILIEU(texte ; position ; nombre): extrait le nombre de caractères souhaités depuis la position indiquée (première lettre du texte = 0).
LONGUEUR(texte): affiche le nombre de caractères (espaces compris) d’un texte.
Exemple : LONGUEUR("Jean") retourne 4.
TROUVE(texte ; critère): indique à quelle position (en partant de 0) le critère souhaité se situe dans le texte (ou chaîne de caractères.
Exemple : TROUVE("Bonjour";"jou") retourne « 3 ».
REMPLACE(texte ; critère ; texte de substitution): remplace le paramètre critère par un texte de substitution.
19.1.8Concaténer Pour coller plusieurs textes ensemble, il suffit d’utiliser le signe + :
Exemple :
"Employé : " + @Donnée:Prénom + " " + MAJUSCULE(@Donnée:Nom)
-
"Employé : " = texte fixe.
-
@Donnée:Prénom = la rubrique contenant le prénom (ex. Jean).
-
" " = un espace inséré manuellement pour séparer prénom et nom.
-
@Donnée:Nom = la rubrique contenant le nom (ex. Dupond).
MAJUSCULE(@Donnée:Nom) = DUPOND
Résultat : « Employé : Jean DUPOND »
Pour coller plusieurs textes ensemble, il suffit d’utiliser le signe + :
Exemple :
"Employé : " + @Donnée:Prénom + " " + MAJUSCULE(@Donnée:Nom)
-
"Employé : "= texte fixe. -
@Donnée:Prénom= la rubrique contenant le prénom (ex. Jean). -
" "= un espace inséré manuellement pour séparer prénom et nom. -
@Donnée:Nom= la rubrique contenant le nom (ex. Dupond). MAJUSCULE(@Donnée:Nom)= DUPOND
Résultat : « Employé : Jean DUPOND »
19.1.9Exportation avec les opérateurs TOTEMPLOYESCSV() et TOTANNEECSV() Lors d’une exportation, les totalisateurs TOTEMPLOYESCSV() et TOTANNEECSV() permettent de cumuler les valeurs des lignes dont le critère défini est identique.
TOTEMPLOYESCSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n)
Si le critère est une chaîne vide ou un nombre inférieur à 1, l’employé courant est ignoré.
Par exemple :
TOTEMPLOYESCSV(@Brut:Montant versé>2500
; @Ind:Salaire mensuel
; @Ind:Salaire horaire)
donne, dans deux colonnes séparées, le total du salaire mensuel et le total du salaire horaire versés à tous les employés pour qui le montant versé est supérieur CHF 2 500 ce mois.
Les modes facultatifs « + » et « − » vous permettent de générer un tableau en plusieurs étapes :
- Le « + » génère le contenu dans la mémoire, en cumulant les lignes dont le critère est identique.
- Le « − » génère le contenu de la mémoire dans un tableau, en classant les lignes d’après le critère.
TOTEMPLOYESCSV(« + » ; @Donnée:Nom du groupe ; @Ind:Salaire mensuel)
TOTEMPLOYESCSV(« -« )
- La 1ère passe génère les lignes en mémoire, en cumulant le salaire mensuel des employés de chaque groupe.
- La 2ème passe génère le tableau en le classant d’après le nom des groupes.
- Le tableau est classé par ordre croissant de critères.
Vous pouvez choisir le séparateur à utiliser pour les colonnes et les lignes :
TOTEMPLOYESCSV(« – » ; « \t » ; « \r\n »)
génère le tableau en séparant les colonnes par un tabulateur et les lignes par un « return ».
Exemple :
Dans une boucle « répété pour chaque indemnité », en utilisant les appels spéciaux COMPTA() et SPECIALOP() :
TOTEMPLOYESCSV(« + » ; COMPTA(;1)+ »/ »+COMPTA(;2)+ »/ »+COMPTA(;3)
; COMPTA(;1) ; COMPTA(;2) ; COMPTA(3) ; SPECIALOP(91))
TOTEMPLOYESCSV(« -« )
génère un tableau de 4 colonnes, Cpte débit ; Cpte crédit ; Libellé ; Montant avec 1 ligne par indemnité, les colonnes étant séparées par un point-virgule. Les lignes dont le compte débit, compte crédit et libellé sont identiques sont cumulées.
Si vous utilisez la fonction dans une exportation, le caractère FINLIGNE() est filtré. Remplacez-le par un CODECAR(1) pour que le résultat final comporte un saut de ligne. La 2ème passe devient donc TOTEMPLOYESCSV(« – » ; « ; » ; CODECAR(1))
Pour obtenir un export tabulé :
TOTEMPLOYESCSV(« – » ; « \t » ; CODECAR(1))
Les mêmes explications valent pour le totalisateur TOTANNEECSV() :
TOTANNEECSV(« 1 » ; @Déd:Cotisation AC ; @Déd:Cotisation LPP)
donne, dans 2 colonnes séparées, le total annuel des cotisations AC et LPP de l’employé courant.
TOTEMPLOYES(TOTANNEECSV(« 1 » ; @Déd:Cotisation AC ; @Déd:Cotisation LPP))
donne, dans 2 colonnes séparées, le total annuel des cotisations AC et LPP de tous les employés.
TOTEMPLOYES(TOTANNEECSV(@Donnée :Nom de l’employé
; @Déd:Cotisation AC
; @Déd:Cotisation LPP
)
)
génère un tableau à 2 colonnes séparées, le total annuel des cotisations AC et LPP de chaque employé, classées par ordre alphabétique du nom.
Si des employés ont le même nom de famille, ils seront cumulés. Il est alors préférable de traiter également le numéro de l’employé.
Lors d’une exportation, les totalisateurs TOTEMPLOYESCSV() et TOTANNEECSV() permettent de cumuler les valeurs des lignes dont le critère défini est identique.
TOTEMPLOYESCSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n)
Si le critère est une chaîne vide ou un nombre inférieur à 1, l’employé courant est ignoré.
Par exemple :
TOTEMPLOYESCSV(@Brut:Montant versé>2500
; @Ind:Salaire mensuel
; @Ind:Salaire horaire)
donne, dans deux colonnes séparées, le total du salaire mensuel et le total du salaire horaire versés à tous les employés pour qui le montant versé est supérieur CHF 2 500 ce mois.
Les modes facultatifs « + » et « − » vous permettent de générer un tableau en plusieurs étapes :
- Le « + » génère le contenu dans la mémoire, en cumulant les lignes dont le critère est identique.
- Le « − » génère le contenu de la mémoire dans un tableau, en classant les lignes d’après le critère.
TOTEMPLOYESCSV(« + » ; @Donnée:Nom du groupe ; @Ind:Salaire mensuel)
TOTEMPLOYESCSV(« -« )
- La 1ère passe génère les lignes en mémoire, en cumulant le salaire mensuel des employés de chaque groupe.
- La 2ème passe génère le tableau en le classant d’après le nom des groupes.
- Le tableau est classé par ordre croissant de critères.
Vous pouvez choisir le séparateur à utiliser pour les colonnes et les lignes :
TOTEMPLOYESCSV(« – » ; « \t » ; « \r\n »)
génère le tableau en séparant les colonnes par un tabulateur et les lignes par un « return ».
Exemple :
Dans une boucle « répété pour chaque indemnité », en utilisant les appels spéciaux COMPTA() et SPECIALOP() :
TOTEMPLOYESCSV(« + » ; COMPTA(;1)+ »/ »+COMPTA(;2)+ »/ »+COMPTA(;3)
; COMPTA(;1) ; COMPTA(;2) ; COMPTA(3) ; SPECIALOP(91))
TOTEMPLOYESCSV(« -« )
génère un tableau de 4 colonnes, Cpte débit ; Cpte crédit ; Libellé ; Montant avec 1 ligne par indemnité, les colonnes étant séparées par un point-virgule. Les lignes dont le compte débit, compte crédit et libellé sont identiques sont cumulées.
Si vous utilisez la fonction dans une exportation, le caractère FINLIGNE() est filtré. Remplacez-le par un CODECAR(1) pour que le résultat final comporte un saut de ligne. La 2ème passe devient donc TOTEMPLOYESCSV(« – » ; « ; » ; CODECAR(1))
Pour obtenir un export tabulé :
TOTEMPLOYESCSV(« – » ; « \t » ; CODECAR(1))
Les mêmes explications valent pour le totalisateur TOTANNEECSV() :
TOTANNEECSV(« 1 » ; @Déd:Cotisation AC ; @Déd:Cotisation LPP)
donne, dans 2 colonnes séparées, le total annuel des cotisations AC et LPP de l’employé courant.
TOTEMPLOYES(TOTANNEECSV(« 1 » ; @Déd:Cotisation AC ; @Déd:Cotisation LPP))
donne, dans 2 colonnes séparées, le total annuel des cotisations AC et LPP de tous les employés.
TOTEMPLOYES(TOTANNEECSV(@Donnée :Nom de l’employé
; @Déd:Cotisation AC
; @Déd:Cotisation LPP
)
)
génère un tableau à 2 colonnes séparées, le total annuel des cotisations AC et LPP de chaque employé, classées par ordre alphabétique du nom.
Si des employés ont le même nom de famille, ils seront cumulés. Il est alors préférable de traiter également le numéro de l’employé.
19.1.10Fonctions supplémentaires pour l'éditeur de calcul Cet article présente un certain nombre de fonctions disponibles dans l’éditeur de calcul de Crésus Salaires et ne figurant pas dans le manuel d’utilisation :
Fonctions de date :
MAINTENANT()
Donne le nombre de secondes écoulées depuis minuit.
TEMPS(heure ; minute ; seconde)
Donne le nombre de secondes de l’heure exprimée en heures, minutes, secondes écoulées depuis minuit.
TEMPS(13;40;35) donne 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 donné en nombre d’heures (0 à 23). La partie fractionnaire exprime les minutes en 1/100e d’heure.
HEURE(MAINTENANT())
HEURE(TEMPS(13;40;35)) donne 13.68.
MINUTE(temps)
Donne le nombre de minutes (0 à 59) écoulées depuis l’heure pleine. La partie fractionnaire exprime les secondes en 1/100e de minute.
MINUTE(MAINTENANT())
MINUTE(TEMPS(13;40;35)) donne 40.58.
SECONDE(temps)
Donne 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)) donne 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()
Donne la date de début de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
DEBUTPERIODE(3) donne la date de début de la 3ème période.
FINPERIODE()
Donne la date de fin de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
FINPERIODE(11) donne la date de la fin de la 11ème période.
JFERIE(n)
Donne le ne jour férié du mois courant, en fonction de la liste introduite dans Entreprise – Jours fériés (§15.5 Définition des 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)) donne 30, soit un mois commercial complet entre le 1er février et le 1er mars.
Fonctions de test :
SEXE()
Donne 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 parenthèses pour la valeur applicable aux hommes :
HOMME(@Donnée:Age retraité AVS)
Donne l’âge de la retraite AVS pour les hommes.
FEMME()
Évalue l’expression entre parenthèses pour la valeur applicable aux femmes :
FEMME(@Donnée:Age retraité AVS)
Donne l’âge de la retraite AVS pour les femmes.
Fonctions de chaîne de caractères :
NOMBRE(chaîne)
Convertit une chaîne représentant un nombre, en nombre.
NOMBRE(« 1’123.45 ») donne 1123.45.
MOT(chaîne ; position ; séparateurs)
Extrait le nème élément (selon sa position) d’une chaîne, en considérant le séparateur défini.
MOT(« aa/bb/cc/dd »;2; »/ ») donne « 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. Cette fonction donne la première occurrence trouvée.
MOT(« aa+bb/cc/dd »;2; »/+& ») donne « 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)
Donne un caractère en fonction de son code ASCII. On peut donner une liste de codes.
CODECAR(65;66;9;67) donne « AB<TAB>C ».
NOMRUBRIQUE()
Donne le nom de la rubrique. Utile pour permettre la modification du nom de la rubrique par un calcul.
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)
donne le libellé de la rubrique tel qu’il a été modifié par l’utilisateur.
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 » ; « ;,. : ») donne 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 de caractères.
OTE( » Bonjour « ) donne «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) donne «Bonjour » .
OTE( » Bonjour » ; 1) donne « Bonjour».
OTE( » Bonjour » ; 2) donne «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 ») donne « Bonjour».
OTE( » Bonjour » ; 1 ; « jour ») donne « Bon».
OTE( » Bonjour » ; 2 ; « ujro ») donne « Bon».
OTE(« Bonjour » ; 0 ; « ojur ») donne «Bonjour ».
OTE(« Bonjour » ; 1 ; « ojru ») donne «Bonjour ».
OTE( » Bonjour » ; 2 ; « jour ») donne « Bonjour » (le caractère espace n’est pas spécifié dans la liste caractères à supprimer.
OTE(« Bonjour » ; 2 ; « jo ur ») donne «Bon».
OTE( » rujo Bonjour » ; 2 ; « ur jo ») donne «Bon».
Fonctions spéciales :
Les fonctions ci-dessous ne se trouvent pas dans les listes des opérations de l’éditeur de calcul. Vous les utilisez en les saisissant directement dans la zone de formule.
SISOUMIS(« mode » ; expression)
Évalue l’expression en ne prenant en compte que les rubriques soumises aux bruts déterminants selon le mode (voir la fonction CUMUL § Crésus Salaires).
SISOUMIS(« LPP »
; @Ind:Prime ancienneté + @Ind:Salaire mensuel)
calcule 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)
fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme zéro pour une addition (voir note § Crésus Salaires).
SIRUBSOUMISE(« mode » ; @rubrique)
Rend 1 ou 0 selon que la rubrique donnée en second paramètre est soumise ou non selon le mode (voir la fonction CUMUL § Crésus Salaires).
SIRUBSOUMISE(« LPP »; @Ind:Prime ancienneté)
donne 1 si la prime d’ancienneté est soumise à la LPP.
SINONSOUMIS(« mode » ; expression)
Évalue l’expression en ne prenant en compte que les rubriques non soumises aux bruts déterminants selon le mode (voir CUMUL § Crésus Salaires).
SINONSOUMIS(« LPP »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
calcule la somme des valeurs si elles ne sont pas 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.
SINONSOUMIS(« AVS »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme égal à zéro pour une addition (voir note § Crésus Salaires).
AGELIMITE(limite ; mode)
Détermine si l’âge de l’employé est inférieur à un âge limite.
AGELIMTE(18) donne zéro si l’employé a 18 ans (dans l’année courante) ou plus. Donne 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 donne la valeur zéro dès le mois suivant l’anniversaire de l’âge concerné.
AGELIMTE(65;1) donne zéro dès le mois suivant le 65ème anniversaire.
POURPERIODE(colonne ; expression)
Donne 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)
donne le salaire mensuel du mois de mars 2014.
FANIONPERIODE(colonne ; paramètre)
Donne 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 13ème 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)
donne 1 si le 13ème 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) donne 1500 puisque la période correspond à un mois et demi.
NOMPERIODE(colonne)
Donne le nom de la colonne (1 à n) du tableau général.
NOMPERIODE(1) donne habituellement « Janvier ».
POURLANGUE(langue ; expression)
Évalue l’expression dans une langue donnée (0 = français, 1 = allemand, 2 = anglais, 3 = italien).
POURLANGUE(2;NOMPERIODE(1)) donne « January ».
ASSURANCE(rubrique ; type ; mode)
Donne 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)
donne 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)
donne le montant à déduire, rapporté à la durée de la période le cas échéant.
IMPOT(code ; mode ; déterminant annuel)
Donne 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 : donne 1 si le calcul est annuel (0 pour mensuel)
3 : donne 1 si le calcul annuel ne doit se faire qu’en fin de l’année
4 : donne 1 si le calcul annuel n’est possible que si l’employé était présent toute l’année
5 : donne 1 si le calcul final doit se faire selon le code de la dernière période
6 : donne le nombre d’heures par mois à considérer
7 : donne l’adresse de l’office tel qu’introduit sous Entreprise – Impôt source
8 : donne le n° de contribuable de l’entreprise
9 : donne le taux de la commission de perception
0 : donne 1 si le calcul mensuel doit se faire rétroactivement.
ANNUEL(mode ; brut ; occasionnel ; prévision ; déduction)
Procède à 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, 13ème salaire).
Le paramètre déduction doit être les montants payés à l’avance sur les vacances et le 13ème 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 § Crésus Salaires.
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 ») donne 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 donne le contenu de la variable « essai » (=le montant cumulé), sinon elle est vide.
C’est l’équivalent de
SI (CUMUL (« AVS ») > 0 ;
CUMUL (« AVS ») ;
VIDE())
mais cela évite de calculer 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 10 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 donne 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épendante 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’occurrences du critère dans la 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)
Donne 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, donne le résultat de l’expression 0, si la condition 1 est vraie, donne le résultat de l’expression 1, etc.
C’est le résultat de l’expression de la dernière condition vraie évaluée qui est donné.
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 »)
Donne le 1er, le 2ème, le 3ème ou le 4ème trimestre selon le mois où se trouve le curseur.
CASE(condition ; 0 ; 1 ; .. ; n)
Donne le résultat de l’opération 0 à n en fonction de la valeur de condition. Si la condition vaut 0, donne le résultat de l’opération 0, si la condition vaut 1, donne le résultat de l’opération 1, etc.
POURCHAQUE(objet ; expression)
Répète l’expression pour toutes les occurrences de l’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)
L’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)
donne 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() donne 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é))
donne le total du salaire versé pour la période d’engagement courante (jusqu’au mois courant).
COMPTA(rubrique ; paramètre)
Donne les définitions comptables d’une rubrique (§10 Comptabiliser les salaires).
La valeur donnée dépend du paramètre :
COMPTA(rubrique ; 1) : compte débit
COMPTA(rubrique ; 1.1) : compte débit de l’employeur
COMPTA(rubrique ; 2) : compte crédit
COMPTA(rubrique ; 2.1) : compte crédit de l’employeur
COMPTA(rubrique ; 3) : libellé
COMPTA(rubrique ; 3.1) : libellé de la part de l’employeur
COMPTA(rubrique ; 4) : mode
COMPTA(rubrique ; 5) : code analytique
COMPTA(rubrique ; 5.1) : code analytique de la part de l’employeur
COMPTA(rubrique ; 6) : code TVA
Dans un bloc d’exportation « pour toutes les indemnités » (§14.1 Exporter des données), si le critère rubrique est vide, la fonction traite la rubrique courante de la boucle :
COMPTA(; 1.1) donne 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 » (§14.1 Exporter des données).
SPECIALOP() s’applique à la rubrique courante, en fonction de la valeur de paramètre.
SPECIALOP(90)
donne le type du coefficient de la rubrique :
-1 : type vide
0 : jours
1 : heures
2 : %
3 : sans type (-)
SPECIALOP(91) donne la valeur de la rubrique.
SPECIALOP(92) donne le déterminant de la rubrique.
SPECIALOP(93) donne le coefficient de la rubrique.
SPECIALOP(94) donne le coefficient employeur de la rubrique.
SPECIALOP(95) donne 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 donné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 donné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 : donne le nom complet avec le code.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 0)
donne A2 : Personnel du bureau, cat. 2
1 : donne le code seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 1)
donne A2
2 : donne le nom et la catégorie.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 2)
donne Personnel du bureau, cat. 2
3 : donne le code et le nom seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 3)
donne A2 : Personnel du bureau
4 : donne la catégorie seulement, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 4)
donne cat. 2
5 : donne le nom seul, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 5)
donne Personnel de bureau
6 : donne le type, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 6)
donne A2
7 : donne le groupe de personnes, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 7)
donne A
8 : donne la catégorie
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 8)
donne 2
11 : donne le numéro Swissdec de l’assureur
12 : donne le numéro de client
13 : donne le numéro de contrat
14 : donne le nom de l’assureur
15 : donne l’adresse de l’assureur
16 : donne le NPA de l’assureur
17 : donne 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 indiquant le cumul des données qui répondent au critère (§ Crésus Salaires)
ADRESSE(mode ; rubrique)
Donne l’élément mode du champ rubrique de type NPA/Rue/Localité (§ Crésus Salaires).
La valeur donné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)
donne le NPA et localité du mandataire.
SETDATA(rubrique ; expression ; paramètre)
S’utilise pour affecter une valeur à une rubrique. Peut s’utiliser dans des expressions complexes.
Le 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 saisi 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 donné 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ères) est ajouté à la chaîne donné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 à donner
é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 à donner
ajoute le texte npa = 1400 à la fin de la chaîne à donner
ce calcul donne 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)
Donne la valeur calculée par Crésus ou la valeur introduite par l’utilisateur en fonction de mode.
mode = 1 : donne la valeur calculée par Crésus
mode = 2 : donne la valeur saisie par l’utilisateur
La valeur donnée est vide si elle n’existe pas.
DONNEE (1 ; @Ind:Salaire mensuel) donne le salaire mensuel calculé pour le mois, même s’il a été modifié manuellement au moment de sa saisie.
POURLANGUE(paramètre ; expression)
Donne l’expression dans la langue en fonction de paramètre.
paramètre peut être
0 : français
1 : allemand
2 : anglais
3 : italien
Cet article présente un certain nombre de fonctions disponibles dans l’éditeur de calcul de Crésus Salaires et ne figurant pas dans le manuel d’utilisation :
Fonctions de date :
| MAINTENANT() | Donne le nombre de secondes écoulées depuis minuit. |
| TEMPS(heure ; minute ; seconde) | Donne le nombre de secondes de l’heure exprimée en heures, minutes, secondes écoulées depuis minuit. TEMPS(13;40;35) donne 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 donné en nombre d’heures (0 à 23). La partie fractionnaire exprime les minutes en 1/100e d’heure. HEURE(MAINTENANT()) HEURE(TEMPS(13;40;35)) donne 13.68. |
| MINUTE(temps) | Donne le nombre de minutes (0 à 59) écoulées depuis l’heure pleine. La partie fractionnaire exprime les secondes en 1/100e de minute. MINUTE(MAINTENANT()) MINUTE(TEMPS(13;40;35)) donne 40.58. |
| SECONDE(temps) | Donne 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)) donne 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() | Donne la date de début de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer. DEBUTPERIODE(3) donne la date de début de la 3ème période. |
| FINPERIODE() | Donne la date de fin de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer. FINPERIODE(11) donne la date de la fin de la 11ème période. |
| JFERIE(n) | Donne le ne jour férié du mois courant, en fonction de la liste introduite dans Entreprise – Jours fériés (§15.5 Définition des 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)) donne 30, soit un mois commercial complet entre le 1er février et le 1er mars. |
Fonctions de test :
| SEXE() | Donne 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 parenthèses pour la valeur applicable aux hommes : HOMME(@Donnée:Age retraité AVS) Donne l’âge de la retraite AVS pour les hommes. |
| FEMME() | Évalue l’expression entre parenthèses pour la valeur applicable aux femmes : FEMME(@Donnée:Age retraité AVS) Donne l’âge de la retraite AVS pour les femmes. |
Fonctions de chaîne de caractères :
| NOMBRE(chaîne) | Convertit une chaîne représentant un nombre, en nombre. NOMBRE(« 1’123.45 ») donne 1123.45. |
| MOT(chaîne ; position ; séparateurs) | Extrait le nème élément (selon sa position) d’une chaîne, en considérant le séparateur défini. MOT(« aa/bb/cc/dd »;2; »/ ») donne « 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. Cette fonction donne la première occurrence trouvée. MOT(« aa+bb/cc/dd »;2; »/+& ») donne « 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) | Donne un caractère en fonction de son code ASCII. On peut donner une liste de codes. CODECAR(65;66;9;67) donne « AB<TAB>C ». |
| NOMRUBRIQUE() | Donne le nom de la rubrique. Utile pour permettre la modification du nom de la rubrique par un calcul. 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) donne le libellé de la rubrique tel qu’il a été modifié par l’utilisateur. |
| 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 » ; « ;,. : ») donne 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 de caractères. OTE( » Bonjour « ) donne «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) donne «Bonjour » . OTE( » Bonjour » ; 1) donne « Bonjour». OTE( » Bonjour » ; 2) donne «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 ») donne « Bonjour». OTE( » Bonjour » ; 1 ; « jour ») donne « Bon». OTE( » Bonjour » ; 2 ; « ujro ») donne « Bon». OTE(« Bonjour » ; 0 ; « ojur ») donne «Bonjour ». OTE(« Bonjour » ; 1 ; « ojru ») donne «Bonjour ». OTE( » Bonjour » ; 2 ; « jour ») donne « Bonjour » (le caractère espace n’est pas spécifié dans la liste caractères à supprimer. OTE(« Bonjour » ; 2 ; « jo ur ») donne «Bon». OTE( » rujo Bonjour » ; 2 ; « ur jo ») donne «Bon». |
Fonctions spéciales :
Les fonctions ci-dessous ne se trouvent pas dans les listes des opérations de l’éditeur de calcul. Vous les utilisez en les saisissant directement dans la zone de formule.
| SISOUMIS(« mode » ; expression) | Évalue l’expression en ne prenant en compte que les rubriques soumises aux bruts déterminants selon le mode (voir la fonction CUMUL § Crésus Salaires). SISOUMIS(« LPP » ; @Ind:Prime ancienneté + @Ind:Salaire mensuel) calcule 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) fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme zéro pour une addition (voir note § Crésus Salaires). |
| SIRUBSOUMISE(« mode » ; @rubrique) | Rend 1 ou 0 selon que la rubrique donnée en second paramètre est soumise ou non selon le mode (voir la fonction CUMUL § Crésus Salaires). SIRUBSOUMISE(« LPP »; @Ind:Prime ancienneté) donne 1 si la prime d’ancienneté est soumise à la LPP. |
| SINONSOUMIS(« mode » ; expression) | Évalue l’expression en ne prenant en compte que les rubriques non soumises aux bruts déterminants selon le mode (voir CUMUL § Crésus Salaires). SINONSOUMIS(« LPP » ; @Ind:Prime ancienneté ; @Ind:Salaire mensuel) calcule la somme des valeurs si elles ne sont pas 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. SINONSOUMIS(« AVS » ; @Ind:Prime ancienneté ; @Ind:Salaire mensuel) fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme égal à zéro pour une addition (voir note § Crésus Salaires). |
| AGELIMITE(limite ; mode) | Détermine si l’âge de l’employé est inférieur à un âge limite. AGELIMTE(18) donne zéro si l’employé a 18 ans (dans l’année courante) ou plus. Donne 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 donne la valeur zéro dès le mois suivant l’anniversaire de l’âge concerné. AGELIMTE(65;1) donne zéro dès le mois suivant le 65ème anniversaire. |
| POURPERIODE(colonne ; expression) | Donne 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) donne le salaire mensuel du mois de mars 2014. |
| FANIONPERIODE(colonne ; paramètre) | Donne 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 13ème 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) donne 1 si le 13ème 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) donne 1500 puisque la période correspond à un mois et demi. |
| NOMPERIODE(colonne) | Donne le nom de la colonne (1 à n) du tableau général. NOMPERIODE(1) donne habituellement « Janvier ». |
| POURLANGUE(langue ; expression) | Évalue l’expression dans une langue donnée (0 = français, 1 = allemand, 2 = anglais, 3 = italien). POURLANGUE(2;NOMPERIODE(1)) donne « January ». |
| ASSURANCE(rubrique ; type ; mode) | Donne 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) donne 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) donne le montant à déduire, rapporté à la durée de la période le cas échéant. |
| IMPOT(code ; mode ; déterminant annuel) | Donne 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 : donne 1 si le calcul est annuel (0 pour mensuel) 3 : donne 1 si le calcul annuel ne doit se faire qu’en fin de l’année 4 : donne 1 si le calcul annuel n’est possible que si l’employé était présent toute l’année 5 : donne 1 si le calcul final doit se faire selon le code de la dernière période 6 : donne le nombre d’heures par mois à considérer 7 : donne l’adresse de l’office tel qu’introduit sous Entreprise – Impôt source 8 : donne le n° de contribuable de l’entreprise 9 : donne le taux de la commission de perception 0 : donne 1 si le calcul mensuel doit se faire rétroactivement. |
| ANNUEL(mode ; brut ; occasionnel ; prévision ; déduction) | Procède à 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, 13ème salaire). Le paramètre déduction doit être les montants payés à l’avance sur les vacances et le 13ème 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 § Crésus Salaires. |
| 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 ») donne 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 donne le contenu de la variable « essai » (=le montant cumulé), sinon elle est vide. C’est l’équivalent de SI (CUMUL (« AVS ») > 0 ; CUMUL (« AVS ») ; VIDE()) mais cela évite de calculer 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 10 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 donne 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épendante 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’occurrences du critère dans la 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) | Donne 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, donne le résultat de l’expression 0, si la condition 1 est vraie, donne le résultat de l’expression 1, etc. C’est le résultat de l’expression de la dernière condition vraie évaluée qui est donné. 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 ») Donne le 1er, le 2ème, le 3ème ou le 4ème trimestre selon le mois où se trouve le curseur. |
| CASE(condition ; 0 ; 1 ; .. ; n) | Donne le résultat de l’opération 0 à n en fonction de la valeur de condition. Si la condition vaut 0, donne le résultat de l’opération 0, si la condition vaut 1, donne le résultat de l’opération 1, etc. |
| POURCHAQUE(objet ; expression) | Répète l’expression pour toutes les occurrences de l’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) L’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) donne 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() donne 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é)) donne le total du salaire versé pour la période d’engagement courante (jusqu’au mois courant). |
| COMPTA(rubrique ; paramètre) | Donne les définitions comptables d’une rubrique (§10 Comptabiliser les salaires). La valeur donnée dépend du paramètre : COMPTA(rubrique ; 1) : compte débit COMPTA(rubrique ; 1.1) : compte débit de l’employeur COMPTA(rubrique ; 2) : compte crédit COMPTA(rubrique ; 2.1) : compte crédit de l’employeur COMPTA(rubrique ; 3) : libellé COMPTA(rubrique ; 3.1) : libellé de la part de l’employeur COMPTA(rubrique ; 4) : mode COMPTA(rubrique ; 5) : code analytique COMPTA(rubrique ; 5.1) : code analytique de la part de l’employeur COMPTA(rubrique ; 6) : code TVA Dans un bloc d’exportation « pour toutes les indemnités » (§14.1 Exporter des données), si le critère rubrique est vide, la fonction traite la rubrique courante de la boucle : COMPTA(; 1.1) donne 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 » (§14.1 Exporter des données). SPECIALOP() s’applique à la rubrique courante, en fonction de la valeur de paramètre. SPECIALOP(90) donne le type du coefficient de la rubrique : -1 : type vide 0 : jours 1 : heures 2 : % 3 : sans type (-) SPECIALOP(91) donne la valeur de la rubrique. SPECIALOP(92) donne le déterminant de la rubrique. SPECIALOP(93) donne le coefficient de la rubrique. SPECIALOP(94) donne le coefficient employeur de la rubrique. SPECIALOP(95) donne 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 donné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 donné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 : donne le nom complet avec le code. INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 0) donne A2 : Personnel du bureau, cat. 2 1 : donne le code seul. INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 1) donne A2 2 : donne le nom et la catégorie. INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 2) donne Personnel du bureau, cat. 2 3 : donne le code et le nom seul. INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 3) donne A2 : Personnel du bureau 4 : donne la catégorie seulement, par exemple INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 4) donne cat. 2 5 : donne le nom seul, par exemple INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 5) donne Personnel de bureau 6 : donne le type, par exemple INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 6) donne A2 7 : donne le groupe de personnes, par exemple INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 7) donne A 8 : donne la catégorie INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 8) donne 2 11 : donne le numéro Swissdec de l’assureur 12 : donne le numéro de client 13 : donne le numéro de contrat 14 : donne le nom de l’assureur 15 : donne l’adresse de l’assureur 16 : donne le NPA de l’assureur 17 : donne 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 indiquant le cumul des données qui répondent au critère (§ Crésus Salaires) |
| ADRESSE(mode ; rubrique) | Donne l’élément mode du champ rubrique de type NPA/Rue/Localité (§ Crésus Salaires). La valeur donné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) donne le NPA et localité du mandataire. |
| SETDATA(rubrique ; expression ; paramètre) | S’utilise pour affecter une valeur à une rubrique. Peut s’utiliser dans des expressions complexes. Le 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 saisi 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 donné 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ères) est ajouté à la chaîne donné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 à donner é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 à donner ajoute le texte npa = 1400 à la fin de la chaîne à donner ce calcul donne 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) | Donne la valeur calculée par Crésus ou la valeur introduite par l’utilisateur en fonction de mode. mode = 1 : donne la valeur calculée par Crésus mode = 2 : donne la valeur saisie par l’utilisateur La valeur donnée est vide si elle n’existe pas. DONNEE (1 ; @Ind:Salaire mensuel) donne le salaire mensuel calculé pour le mois, même s’il a été modifié manuellement au moment de sa saisie. |
| POURLANGUE(paramètre ; expression) | Donne l’expression dans la langue en fonction de paramètre. paramètre peut être 0 : français 1 : allemand 2 : anglais 3 : italien |