diff --git a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
index 120e98bda666acaeed717e9dc7d14060983662d4..1ec2f59db6427c0aeb5276b0c29a9a9190a9139b 100644
--- a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
+++ b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
@@ -667,6 +667,8 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.toggleLay
     } else {
         this.closeLayersMenus();
         oLayer['displayedMenu'] = true;
+        // Si toutes les couches sont activés : le checkbox pour activer ou désactiver toutes les couches est coché.
+        this.setAllSublayersActivationCheckbox(oLayer["olLayer"]);
     }
 
     // Resize la fenêtre
@@ -749,6 +751,9 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.toggleSub
         this.activeSublayer(olLayer, sSublayer);
     }
 
+    // Si toutes les couches sont activés : le checkbox pour activer ou désactiver toutes les couches est coché.
+    this.setAllSublayersActivationCheckbox(olLayer);
+    //
     oVmap['scope'].$broadcast('layersChanged');
 };
 
@@ -1021,3 +1026,41 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.setSublay
 
     oVmap['scope'].$broadcast('layersChanged');
 }
+
+/**
+ * Toggle all the sublayers in the olLayer
+ * @param  {ol.Layer} oLayer
+ * @param  {string} sCheckboxId
+ * @export
+ */
+nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.toggleAllSubLayers = function (oLayer, sCheckboxId) {
+    oVmap.log('nsVmap.nsMapManager.LayersTree.LayertreeController.toggleAllSubLayers');
+    var aAvailableSublayers = angular.copy(oLayer["olLayer"]["get"]('sublayers'));
+    var bLayersVisibility = document.getElementById(sCheckboxId).checked;
+    for (var i = 0; i < aAvailableSublayers.length; i++) {
+        if (bLayersVisibility || i == 0)
+            this.activeSublayer(oLayer["olLayer"], aAvailableSublayers[i]);
+        else
+            this.unactiveSublayer(oLayer["olLayer"], aAvailableSublayers[i], '#' + oLayer["olLayer"].$$hashKey + '_sublayer_' + aAvailableSublayers[i] + '_visible_checkbox');
+    }
+    oLayer["olLayer"]["allSublayersActive"] = bLayersVisibility;
+    oVmap['scope'].$broadcast('layersChanged');
+};
+
+/*
+* LayertreeController.prototype.setAllSublayersActivationCheckbox - Coche ou décoche le checkbox pour activer ou désactiver toutes les couches
+*
+* @param  {ol.Layer} olLayer
+* @export
+*/
+nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.setAllSublayersActivationCheckbox = function(olLayer) {
+   oVmap.log('nsVmap.nsMapManager.LayersTree.LayertreeController.setAllSublayersActivationCheckbox');
+   var aAvailableSublayers = olLayer.get('sublayers');
+   var aActiveSublayers = olLayer.get('activeSublayers');
+   if (goog.isArray(aAvailableSublayers) && goog.isArray(aAvailableSublayers)) {
+      if (aAvailableSublayers.length == aActiveSublayers.length)
+          olLayer["allSublayersActive"] = true;
+      else
+          olLayer["allSublayersActive"] = false;
+   }
+};
diff --git a/src/module_vmap/module/template/layers/layertree.html b/src/module_vmap/module/template/layers/layertree.html
index 3141c44e2381b972cbd1df47df5f2c3cd7f5de90..16ede7a751f412636438248f9bad2648fedba6af 100644
--- a/src/module_vmap/module/template/layers/layertree.html
+++ b/src/module_vmap/module/template/layers/layertree.html
@@ -117,19 +117,37 @@
                                     </div>
                                 </a>
                             </li>
+                            <!-- Coche ou décoche toutes les couches -->
+                            <li ng-if="layer.olLayer.get('sublayers').length > 1">
+                              <div class="sublayer-checkboxes">
+                                  <!-- Checkbox interrogation GetFeatureInfo -->
+                                  <div class="checkbox checkbox-success sublayer-checkbox inline-checkbox" ng-if="layer.olLayer.values.is_queryable_getfeatureinfo === true && ctrl.properties.selection.enable_getfeatureinfo === true">
+                                  </div>
+                                  <!-- Checkbox visible -->
+                                  <div class="checkbox checkbox-info inline-checkbox" ng-class="{'checkbox_indeterminate' : layer.olLayer.allSublayersActive === false}">
+                                      <input id="{{layer.$$hashKey}}_all_sublayer_visibility_checkbox"
+                                             type="checkbox"
+                                             style="cursor:pointer; position: absolute"
+                                             title="Définition de la visibilité de toutes les couches"
+                                             ng-checked="layer.olLayer.allSublayersActive"
+                                             ng-click="ctrl.toggleAllSubLayers(layer, layer.$$hashKey + '_all_sublayer_visibility_checkbox')">
+                                      <label for="{{layer.$$hashKey}}_all_sublayer_visibility_checkbox" style="cursor:pointer" title="Définition de la visibilité de toutes les couches"></label>
+                                  </div>
+                              </div>
+                            </li>
                             <li ng-if="layer.olLayer.get('type') === 'imagewms' || layer.olLayer.get('type') === 'tilewms'"
                                 ng-repeat="sublayer in layer.olLayer.get('sublayers')">
                                 <div class="sublayer-checkboxes">
                                     <!-- Checkbox interrogation GetFeatureInfo -->
                                     <div class="checkbox checkbox-success sublayer-checkbox inline-checkbox" ng-if="layer.olLayer.values.is_queryable_getfeatureinfo === true && ctrl.properties.selection.enable_getfeatureinfo === true">
                                         <input id="{{layer.$$hashKey}}_sublayer_{{sublayer}}_wms_queryable_checkbox"
-                                        type="checkbox"
-                                        style="cursor:pointer; position: absolute"
-                                        title="Definit si la couche est est interrogeable par requête WMS"
-                                        ng-checked="ctrl.isSublayerWMSQueryable(layer.olLayer, sublayer)"
-                                        ng-disabled="layer.olLayer.values.visible !== true"
-                                        ng-click="ctrl.toggleSublayerWMSQueryable(layer.olLayer, sublayer)">
-                                        <label for="{{layer.$$hashKey}}_sublayer_{{sublayer}}_wms_queryable_checkbox" style="cursor:pointer" title="Definit si la couche est interrogeable par requête WMS"></label>
+                                               type="checkbox"
+                                               style="cursor:pointer; position: absolute"
+                                               title="Definit si la couche est est interrogeable par requête WMS"
+                                               ng-checked="ctrl.isSublayerWMSQueryable(layer.olLayer, sublayer)"
+                                               ng-disabled="layer.olLayer.values.visible !== true"
+                                               ng-click="ctrl.toggleSublayerWMSQueryable(layer.olLayer, sublayer)">
+                                            <label for="{{layer.$$hashKey}}_sublayer_{{sublayer}}_wms_queryable_checkbox" style="cursor:pointer" title="Definit si la couche est interrogeable par requête WMS"></label>
                                     </div>
                                     <!-- Checkbox visible -->
                                     <div class="checkbox checkbox-info sublayer-checkbox inline-checkbox">