diff --git a/web/components/vote/desk-round.js b/web/components/vote/desk-round.js
index e37ac2ef81d19397f5082089d9d088d5280cb556..aeaeb0a2d24c7b2e460c909b52ae73f0b0790e84 100644
--- a/web/components/vote/desk-round.js
+++ b/web/components/vote/desk-round.js
@@ -67,6 +67,14 @@ class DeskRoundSelector {
                   </select>
                 </div>
               </div>
+              <div class="field">
+                <label>Section</label><br />
+                <div class="control select">
+                  <select name="section-select" id="section-select">
+                    <option>Veuillez sélectionner une section</option>
+                  </select>
+                </div>
+              </div>
             </div>
           </div>
           <div class="column">
@@ -106,6 +114,9 @@ class DeskRoundSelector {
           deskRoundHandler.loadAreas(event.target.value);
         }
         if (event.target.id === "area-select") {
+          deskRoundHandler.loadSections(event.target.value);
+        }
+        if (event.target.id === "section-select") {
           deskRoundHandler.loadDesks(event.target.value);
         }
       },
@@ -178,12 +189,34 @@ class DeskRoundSelector {
       selectArea.appendChild(el);
     });
 
-    this.loadDesks(areas[0].ID);
+    this.loadSections(areas[0].ID);
   }
 
-  async loadDesks(AreaID) {
+  async loadSections(AreaID) {
     this.AreaID = AreaID;
     let deskRoundHandler = this;
+    let selectSection = document.getElementById("section-select");
+    let sections = await this.SectionModel.getSections();
+    sections = sections.filter((section) => {
+      return section.AreaID == deskRoundHandler.AreaID;
+    });
+
+    for (let i = selectSection.options.length - 1; i >= 0; i--) {
+      selectSection.remove(i);
+    }
+    sections.forEach((section) => {
+      let el = document.createElement("option");
+      el.textContent = section.Name;
+      el.value = section.ID;
+      selectSection.appendChild(el);
+    });
+
+    this.loadDesks(sections[0].ID);
+  }
+
+  async loadDesks(SectionID) {
+    this.SectionID = SectionID;
+    let deskRoundHandler = this;
     let deskRounds = await this.DeskRoundModel.getDeskRounds();
     deskRounds = deskRounds.filter((deskRound) => {
       return deskRound.RoundID == deskRoundHandler.RoundID;
@@ -191,10 +224,7 @@ class DeskRoundSelector {
     let deskRoundsFiltered = [];
     for (let deskRound of deskRounds) {
       let desk = await deskRoundHandler.DeskModel.getDesk(deskRound.DeskID);
-      let section = await deskRoundHandler.SectionModel.getSection(
-        desk.SectionID
-      );
-      if (section.AreaID == deskRoundHandler.AreaID)
+      if (desk.SectionID == deskRoundHandler.SectionID)
         deskRoundsFiltered.push(deskRound);
     }
     deskRounds = deskRoundsFiltered;