diff --git a/models/acc_operation.py b/models/acc_operation.py
index 6c372a849d6b097c5fe121f4acf57ecc212afb53..6496a27aeaaeebd5da9364a014057bf89058d785 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -15,16 +15,17 @@ from odoo.addons.api_connector.tools.date_utils import utc_to_local
 def get_algo_description(algo):
     desc = {
         "prorata": "La clé de répartition est calculée automatiquement chaque mois,"
-                   " au prorata de la consommation de chacun des consommateurs.",
+        " au prorata de la consommation de chacun des consommateurs.",
         "static": "La clé de répartition est calculée automatiquement chaque mois, "
-                  "en fonction des coefficients de répartition communiqués "
-                  "initialement à Enedis.",
+        "en fonction des coefficients de répartition communiqués "
+        "initialement à Enedis.",
         "dyn_perso_send": "",
         "dyn_perso_compute": "",
     }
 
     return desc.get(algo, f"Pas de descritpion associée a {algo}")
 
+
 class AccOperation(models.Model):
     _inherit = ["acc.operation"]
 
@@ -168,18 +169,19 @@ class AccOperation(models.Model):
 
     @api.onchange("type_algo")
     def on_change_algo(self):
-
         self.algo_description = get_algo_description(self.type_algo)
 
     # ------------------------------------------------------
     # CRUD methods (ORM overrides)
     # ------------------------------------------------------
     def write(self, vals):
-
         if vals.get("type_algo"):
-            vals.update({'algo_description': get_algo_description(vals.get("type_algo"))})
+            vals.update(
+                {"algo_description": get_algo_description(vals.get("type_algo"))}
+            )
         res = super().write(vals)
         return res
+
     # ------------------------------------------------------
     # Actions
     # ------------------------------------------------------
@@ -219,6 +221,8 @@ class AccOperation(models.Model):
 
         horodatages = list(OrderedDict.fromkeys(keys))
 
+        counter_period = self.get_counter_by_period_day(date_list=horodatages)
+
         for time_slot in horodatages:
             keys = self.env["acc.repartition.counter"].search(
                 [
@@ -228,17 +232,23 @@ class AccOperation(models.Model):
             )
             body = []
             for key in keys:
-                body.append({"id": key.acc_counter_id.name, "key": key.weight})
-            data = {"timestamp": time_slot.strftime("%Y%m%dT%H%M%SZ"), "body": body}
-            job_description = (
-                f"{self.name} - Send repartition key at {data.get('timestamp')}"
-            )
-            try:
-                self.with_delay(description=job_description).send_repartition_key(
-                    key=data
+                if key.acc_counter_id.name in counter_period.get(
+                    time_slot.replace(hour=0, minute=0, second=0)
+                ):
+                    body.append({"id": key.acc_counter_id.name, "key": key.weight})
+
+            if body:
+                data = {"timestamp": time_slot.strftime("%Y%m%dT%H%M%SZ"), "body": body}
+
+                job_description = (
+                    f"{self.name} - Send repartition key at {data.get('timestamp')}"
                 )
-            except ValidationError as exc:
-                raise UserError(_(str(exc))) from exc
+                try:
+                    self.with_delay(description=job_description).send_repartition_key(
+                        key=data
+                    )
+                except ValidationError as exc:
+                    raise UserError(_(str(exc))) from exc
 
     def get_repartition_data_for_csv(self):
         """
@@ -340,3 +350,34 @@ class AccOperation(models.Model):
             }
         )
 
+    def get_counter_by_period_day(self, date_list):
+        """
+        return counter in period for simple day
+        {
+            day1 : [counter...],
+            day2 : [counter...],
+        }
+        """
+        counter_period = {}
+        res = [
+            datetime.strptime(d, "%d-%m-%y")
+            for d in list(
+                OrderedDict.fromkeys(
+                    [h.strftime("%d-%m-%y") for h in date_list]
+                )
+            )
+        ]
+        for date in res:
+            counter_period[date] = (
+                self.env["acc.counter.period"]
+                ._get_periods_from_date(
+                    [
+                        ("acc_operation_id", "=", self.id),
+                        ("prm_type", "=", "delivery"),
+                    ],
+                    date,
+                )
+                .mapped("acc_counter_id.name")
+            )
+
+        return counter_period