diff --git a/src/Node.py b/src/Node.py
index 6ea51f34ebf3c693282083743aff229a99d1cd84..cc4dee2556dcb23166ff308ee7743dd09f721e8e 100644
--- a/src/Node.py
+++ b/src/Node.py
@@ -1,5 +1,6 @@
 from util import recherche_dichotomique
 from Visualization import *
+from BTree import *
 
 class Node() :
     
@@ -77,6 +78,7 @@ class Node() :
     
     def insert(self, value, k):
         """
+        Return : (node, index) or Nothing
         Exemple(s):
         >>> node = Node([5])
         >>> node.insert(20, 2)
@@ -131,21 +133,34 @@ class Node() :
             return True, None, None, None
         
     def suppression(self, value, k, is_root=False) :
-        (node, index) = self.search(value)
-        if (node.isLeaf()) :
-            removed = node.keys.pop(index)
-            if ( not is_root):
-                if (k//2 <= len(node.keys) <= k):
-                    return True, None
-                else:
-                    return False, removed
-            else
-                return True, None
+        """
+        Exemple(s):
+        >>> node = Node([12, 42], [Node([3, 4]), Node([25, 26]), Node([50, 58])])
+        >>> node.suppression(50, 2)
+        
+        
+        """
+        (found, index) = recherche_dichotomique(value, self.keys)
+        if (self.isLeaf()) :
+            removed = self.keys.pop(index)
+            ok = is_root or k//2 <= len(self.keys)
         else:
-            (ok, removed) = self.supression(value, k)
+            (ok) = self.childs[index].suppression(value, k, False)
             if (not ok):
+                if(index - 1 >= 0 and (len(self.childs[index-1].keys) >= k//2)):
+                    borrowed = self.childs[index-1].keys.pop()
+                    replaced = self.keys.pop(0)
+                    self.keys.insert(0, borrowed)
+                    self.childs[index].keys.insert(0, replaced)
+                elif(index + 1 < len(self.childs) and (len(self.childs[index+1].keys) >= k//2)):
+                    borrowed = self.childs[index+1].keys.pop(0)
+                    replaced = self.keys.pop()
+                    self.keys.insert(len(self.keys), borrowed)
+                    self.childs[index].keys.insert(len(self.childs), replaced)
+        
+        
+        return ok
                 
-            
     
 #     def suppr(self, value, k) :
 #         """
@@ -196,7 +211,9 @@ class Node() :
     
     
     def __repr__(self) :
-        return f"Node({self.keys})"
+        return (f"Node({self.keys}"
+                + (f", {self.childs})" if len(self.childs) > 0 else ")"))
+
               
 if __name__ == '__main__':
     import doctest