Skip to main content

Paramétrage prime ancienneté sans CCN


Bonjour à tous,

Je sollicite votre aide pour le paramétrage d’une prime d’ancienneté dans Silae, applicable aux cadres et non-cadressans convention collective.

🔧 Objectif :

  • Calculer une prime d’ancienneté mensuelle,
  • Basée sur le salaire de base, incluant les heures à taux normal et majorées,
  • Proratisée en cas d’absence (maladie, congés sans solde, etc.).

📊 Grille souhaitée :

  • ≥ 3 ans : 3 %
  • ≥ 6 ans : 6 %
  • ≥ 9 ans : 9 %
  • ≥ 10 ans : 10 %
  • ≥ 12 ans : 12 %
  • ≥ 15 ans : 15 %

💡 Après plusieurs essais, j’obtiens des erreurs de compilation ou des montants incorrects sur les bulletins. Je cherche donc une formule fiable à intégrer dans un profil de prime, ainsi que les bonnes pratiques pour l’affecter aux salariés.

Sur le paramétrage ci-dessus, la base ne prends pas en compte les absences et je souhaiterai qu’elle les prenne en compte.

Merci d’avance pour votre aide précieuse !

11 commentaires

MSC SOCIAL1
Ambassadeur
Forum|alt.badge.img
  • Ambassadeur
  • 1509 commentaires
  • 5 juin 2025

Bonjour, sur la communauté le sujet a été abordé, mettre dans sujet : 

Prime d'ancienneté

vous aurez la fonction calcul. et faire des tests.


Forum|alt.badge.img+1
  • Expert
  • 138 commentaires
  • 5 juin 2025

Bonjour, 

Essayez peut-être ceci ? 
 

Anciennete = DateDiff("m", DateEntree, DatePaie) \ 12

Select Case Anciennete
    Case Is >= 15
        Taux = 0.15
    Case Is >= 12
        Taux = 0.12
    Case Is >= 10
        Taux = 0.1
    Case Is >= 9
        Taux = 0.09
    Case Is >= 6
        Taux = 0.06
    Case Is >= 3
        Taux = 0.03
    Case Else
        Taux = 0
End Select

BasePrime = SalaireBase + HeuresSup25 + HeuresSup50 ' ou autre variable selon vos paramètres

RESULTAT = BasePrime * Taux


 

  • Cochez "Proratisable" selon les absences.

  • Si vous souhaitez que la prime évolue automatiquement, cochez l'option "Recalculer chaque mois"


  • Auteur
  • Nouveau
  • 4 commentaires
  • 5 juin 2025
MSC SOCIAL1 a écrit:

Bonjour, sur la communauté le sujet a été abordé, mettre dans sujet : 

Prime d'ancienneté

vous aurez la fonction calcul. et faire des tests.

Bonjour,

Merci pour votre retour et pour le lien transmis.

Je me permets toutefois de vous préciser que j’ai déjà consulté cette ressource, ainsi que plusieurs autres sujets similaires. Malheureusement, les solutions proposées concernent principalement des primes forfaitaires, alors que dans mon cas, il s’agit d’un calcul en pourcentage sur le salaire de base après absences, ce qui nécessite un paramétrage différent.

C’est justement ce point qui bloque, malgré mes différents essais. Si vous avez un exemple de formule ou de une correction sur mon paramétrage ci-dessous, je suis preneuse.

Je vous remercie.

 


  • Auteur
  • Nouveau
  • 4 commentaires
  • 5 juin 2025
Maeva DUCRAY a écrit:

Bonjour, 

Essayez peut-être ceci ? 
 

Anciennete = DateDiff("m", DateEntree, DatePaie) \ 12

Select Case Anciennete
    Case Is >= 15
        Taux = 0.15
    Case Is >= 12
        Taux = 0.12
    Case Is >= 10
        Taux = 0.1
    Case Is >= 9
        Taux = 0.09
    Case Is >= 6
        Taux = 0.06
    Case Is >= 3
        Taux = 0.03
    Case Else
        Taux = 0
End Select

BasePrime = SalaireBase + HeuresSup25 + HeuresSup50 ' ou autre variable selon vos paramètres

RESULTAT = BasePrime * Taux


 

  • Cochez "Proratisable" selon les absences.

  • Si vous souhaitez que la prime évolue automatiquement, cochez l'option "Recalculer chaque mois"

Bonjour,

Erreur également. Merci pour votre aide


En remplaçant 

BB = Bul.TauxHoraire * Bul.NbhmN ?


ou comme ca :

Base de calcul : salaire brut après absences
BB = BUL.SalaireDeBase
Affecte le taux horaire des absences
Call AffecteLibellePrimeEnCours_InclusCalcMajorationTxHAbs(True)
 

Ce qui proratisera le montant de la prime d’ancienneté via l’absence ? 


  • Auteur
  • Nouveau
  • 4 commentaires
  • 5 juin 2025
Julie STEFFIN a écrit:

En remplaçant 

BB = Bul.TauxHoraire * Bul.NbhmN ?

Bonjour,

Merci pour votre retour.

J’ai bien testé la formule que vous m’avez proposée, mais elle ne semble pas prendre en compte le salaire de base tel qu’attendu. En effet, même lorsque le salarié est présent tout le mois, la base utilisée diffère du salaire de base contractuel, ce qui fausse le calcul de la prime.

Par ailleurs, sauriez-vous où je pourrais trouver une liste complète des variables commençant par Bul. ? Cela me permettrait de tester différentes options et peut-être d’identifier celle qui correspond exactement à mon besoin.

Merci d’avance pour votre aide.


Marion DELOM a écrit:
Julie STEFFIN a écrit:

En remplaçant 

BB = Bul.TauxHoraire * Bul.NbhmN ?

Bonjour,

Merci pour votre retour.

J’ai bien testé la formule que vous m’avez proposée, mais elle ne semble pas prendre en compte le salaire de base tel qu’attendu. En effet, même lorsque le salarié est présent tout le mois, la base utilisée diffère du salaire de base contractuel, ce qui fausse le calcul de la prime.

Par ailleurs, sauriez-vous où je pourrais trouver une liste complète des variables commençant par Bul. ? Cela me permettrait de tester différentes options et peut-être d’identifier celle qui correspond exactement à mon besoin.

Merci d’avance pour votre aide.

Pas de liste, par contre dans référentiel → prime → Libellé ; vous avez accès à toutes les calculs de prime d’ancienneté en fonction des CCN, il faut juste trouver une convention qui se rapproche de la base que vous souhaitez.


Forum|alt.badge.img+1

Bonjour,

Il faudrait essayer en ajoutant pour proratiser le salaire :

Nbjt = 30
NbjA = NbJCalendairesAbsences(bul.periode,bul.date,"+54+09")
If NbjA > 30 then NbjA = 30
Nbj = (Nbjt - NbjA) / Nbjt

 

La liste des absences est à personnaliser suivant votre dossier.

Bon courage.


GAUTHIER CLAPTIEN a écrit:

Bonjour,

Il faudrait essayer en ajoutant pour proratiser le salaire :

Nbjt = 30
NbjA = NbJCalendairesAbsences(bul.periode,bul.date,"+54+09")
If NbjA > 30 then NbjA = 30
Nbj = (Nbjt - NbjA) / Nbjt

 

La liste des absences est à personnaliser suivant votre dossier.

Bon courage.

Pas bête mais j’avais compris qu’elle voulait que la base soit la valeur du salaire de base sans absence.

A mon avis, elle ne veut pas proratiser selon un trentieme de jour calendaire.


  • Auteur
  • Nouveau
  • 4 commentaires
  • 6 juin 2025
GUILLAUME PRATLONG a écrit:
GAUTHIER CLAPTIEN a écrit:

Bonjour,

Il faudrait essayer en ajoutant pour proratiser le salaire :

Nbjt = 30
NbjA = NbJCalendairesAbsences(bul.periode,bul.date,"+54+09")
If NbjA > 30 then NbjA = 30
Nbj = (Nbjt - NbjA) / Nbjt

 

La liste des absences est à personnaliser suivant votre dossier.

Bon courage.

Pas bête mais j’avais compris qu’elle voulait que la base soit la valeur du salaire de base sans absence.

A mon avis, elle ne veut pas proratiser selon un trentieme de jour calendaire.

Bonjour, la formule que j’ai mise fonctionne mais elle retire pas les absences comme je le souhaite et bien sûr s’il y a une absence je ne peux pas forcer ma base. 


Commenter


Gestion des cookies

Nous utilisons des cookies pour améliorer et personnaliser votre expérience. Si vous acceptez ou continuez de naviguer, vous acceptez règles relatives aux cookies. En savoir plus sur nos cookies

 
Paramètres de cookies