diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py
index 98080c9b1a34ac77151da4d500f10b312be0b0f6..aed6a263969927b8981556a6ad6f6da01152d3e0 100644
--- a/models/scop_partner_staff.py
+++ b/models/scop_partner_staff.py
@@ -119,34 +119,51 @@ class ScopPartnerStaff(models.Model):
     # Contrains
     # ------------------------------------------------------
     @api.one
-    @api.constrains('staff_count', 'staff_shareholder_count', 'staff_average')
+    @api.constrains('cooperative_form_id',
+                    'type_entry',
+                    'staff_count',
+                    'staff_shareholder_count',
+                    'staff_average')
     def _check_staff(self):
         """
-            Interdit de créer une ligne à 0 sauf lorsque
-            cette ligne vient de la liste ministère
-            ou si ligne associés / ETP pour les SCIC
-            ou si ligne ETP pour les 'tracked naf'
+            Règles spécifiques pour les effectifs
         """
-        if self.type_entry \
-                not in ('questionnaire', 'questionnaire_inscription'):
-            if self.cooperative_form_id.id == self.env.ref(
-                    'cgscop_partner.form_scic').id:
-                if self.staff_count == 0:
+        scic = self.env.ref('cgscop_partner.form_scic').id
+        scop = self.env.ref('cgscop_partner.form_scop').id
+
+        def check_staff_shareholder():
+            # Effectif total >= effectif sociétaires
+            if self.staff_shareholder_count > 0:
+                if not self.staff_count >= self.staff_shareholder_count:
                     raise ValidationError(
-                        "La colonne Effectif (EF) doit être renseignée"
-                        " et supérieurs à 0.")
-            elif self.is_partner_in_tracked_naf:
-                if self.staff_count == 0 or self.staff_shareholder_count == 0:
+                        "L'effectif total doit être supérieur ou égal au nombre de sociétaires salariés")
+
+        def check_staff_average():
+            if self.staff_average > 0:
+                if not self.staff_count >= self.staff_average:
                     raise ValidationError(
-                        "Les colonnes Effectif (EF) et Nb Sociétaires Salarié"
-                        " doivent être renseignés et supérieurs à 0.")
-            else:
-                if self.staff_shareholder_count == 0 \
-                        or self.cooperative_form_id == 0 \
-                        or self.staff_average == 0:
+                        "L'effectif total doit être supérieur ou égal au nombre d'équivalent temps plein")
+
+        # Les règles ne s'appliquent pas pour les entrées LM / Questionnaire
+        if self.type_entry not in ('questionnaire', 'questionnaire_inscription'):
+            # Règles pour les SCIC
+            if self.cooperative_form_id.id == scic:
+                check_staff_shareholder()
+                check_staff_average()
+            # Règles pour les SCOP
+            elif self.cooperative_form_id.id == scop:
+                # Effectif total non nul
+                if self.staff_count == 0:
+                    raise ValidationError(
+                        "L'effectif total doit être supérieur ou égal à 0 pour cette copérative de type SCOP")
+                check_staff_shareholder()
+                check_staff_average()
+
+            # Règles sprécifiques pour les NAF suivis
+            if self.is_partner_in_tracked_naf:
+                if self.staff_average == 0:
                     raise ValidationError(
-                        "Tous les effectifs doivent"
-                        " être renseignés et supérieurs à 0.")
+                        "Le nombre d'équivalent temps plein doit être renseigné pour cette coopérative")
 
     @api.constrains('effective_date')
     def _check_effective_date(self):
diff --git a/views/res_partner.xml b/views/res_partner.xml
index c7e84b69c05aa9c2fd3825f78cf5a5c390958547..ec19ee841928ca9cdd9987c7b3f841220c78f538 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -697,9 +697,9 @@
                                 <field name="effective_date" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/>
                                 <field name="type_entry" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/>
                                 <field name="staff_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/>
-                                <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"/>
+                                <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/>
                                 <field name="staff_shareholder_total" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/>
-                                <field name="staff_average" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '!=', True), ('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"/>
+                                <field name="staff_average" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}"/>
                                 <field name="comment" />
                                 <field name="user_id" readonly="1"/>
                                 <button name="edit_staff" type="object" icon="fa-pencil-square-o"/>