none
Excel "ne répond pas" lors d'une macro RRS feed

  • Discussion générale

  • Bonjour, 

    J'utilise excel pour effectuer une macro devant effectuer un grand nombre de calculs.
    J'ai codé une programme similaire en C++ sur visual studio qui s'effectue parfaitement. Mais j'ai aujourd'hui besoin d'excel qui est bien plus simple d'utilisation pour continuer mon projet. 

    Lorsque j'effectue la macro, excel ne répond plus, et plus rien ne se passe. 

    J'ai effectuer mon code pas à pas pour voir s'il n'était pas en boucle infinie, et il ne l'est pas, les boucles sont simplement très longues, puis que j'ai en résumé : 
     for A ...
       for B ... 
         for C ... 
           for D...
              for E...
                 if A+B+C+D+E = X ......
             next E
          next D
       next C
      next B 
    next A

    Existe-t-il une solution pour qu'excel ne plante pas ? 

    samedi 8 avril 2017 10:32

Toutes les réponses

  • Bonjour,

    Excel affiche "Excel ne répond pas" quand il effectue une opération d'une durée certaine. Avant "Next A" tu peux mettre :

    Debug.Print A

    Les valeurs de A s'afficheront dans la fenêtre d'exécution. Est-ce que tu pourrais poster ton code afin de voir s'il est possible de l'optimiser.

    Cordialement.

    Daniel

    samedi 8 avril 2017 10:56
  • Bonjour, je me suis rendu compte qu'Excel devait faire trop de calculs. 
    J'ai donc changé mes for en while, et ainsi au lieu de faire +1 à chaque boucle j'applique un pas, que je définis a 10, 20, 30 etc. J'obtiens donc des boucles à +20 par exemple au lieu de +1. 
    Et dans ce cas : magie, la macro fonctionne ! 

    Mais ce serait trop beau si on pouvait en rester là. 
    J'ai ajouté des commentaires à mon code à fin de vous le montrer, et depuis la macro se lance et ne dure qu'une seconde à peine. En temps normal j'affichais dans une case la valeur de ma première boucle pour voir l'avancé du programme, elle faisait donc 1, puis 2, puis 3 jusqu'à 15. Maintenant elle fait 1 et 15 d'un coup. 

    En faisant du pas à pas, le programme à l'air d'avoir la bonne logique, mes boucles ont l'air correctes. 
    Mais maintenant la macro passe directement à la fin j'ai l'impression. 

    Le ne sais pas si mon code avec les commentaires sera assez clair, je vous explique le principe : 

    Je mets dans un tableau 18 farines, avec leur nom, la quantité de protéines, de lipides et de glucides de chacune. 
    Sur la feuil2 je choisis une valeur min et max de prot lipides et glucides

    J'obtiens par exemple : 
    Prot : 300 à 350
    Lipides : 200 à 250 
    Glucides : 500 à 550 

    Le programme va ensuite faire des groupes de 5 farines. Prenons les 5 premières. 
    Pour chaque farine il va augmenter petit à petit leur quantité, et si à un moment donné j'obtiens une valeur comprise entre mes prot mini et maxi, lipides mini et maxi, glucides mini et maxi, alors ce mélange me convient. Le programme récupère alors le nom des farines puis l'écrit sur une feuil3, avec la quantité de chaque farine à coté. 

    Il y a peut-être plus simple comme solution, et je suis preneur de toute optimisation, mais à l'heure actuelle réparé mon code cassé sera déjà beaucoup ! 

    (Je précise que je débute en VBA, je suis bien plus à l'aise en C++)

    Voici le code : 

    Sub code()
    
    'Récupération des valeurs du tableau'
    '---------------------------------'
    prot3 = Feuil2.Cells(5, 9).Value ' <= valeur mini'
    prot2 = Feuil2.Cells(5, 10).Value ' <= valeur maxi'
    
    lipides3 = Feuil2.Cells(6, 9).Value ' <= valeur mini'
    lipides2 = Feuil2.Cells(6, 10).Value ' <= valeur maxi'
    
    glucides3 = Feuil2.Cells(7, 9).Value ' <= valeur mini'
    glucides2 = Feuil2.Cells(7, 10).Value ' <= valeur maxi'
    '---------------------------------'
    
    'Définition de la veleur du pas de recherche ( ex : 20 par 20, 50 par 50 etc)'
    pas = Feuil2.Cells(5, 6).Value
    '------------------------------'
    
    test = 5
    
    
    For a = 2 To 15 ' <= pour effectuer le calcul sur chaque ligne du tableau'
    
        For prot = prot3 To prot2  ' De la valeur mini à la maxi pour les prot'
             For lipides = lipides3 To lipides2 ' Pour les lipides'
                For glucides = glucides3 To glucides2 ' Pour les glucides'
                
                   If prot + lipides + glucides = 1000 Then 'On cherche un mélange de prot/lipide/glucide qui nous donne 1000 (1kilo)'
                   
                   Debug.Print prot
                   
                   
                    While i <= Feuil1.Cells(a, 5) ' On cherche de 1 à la valeur maxi qui se trouve dans le tableau (ex :1 à 300)'
                    
                                  Feuil2.Cells(2, 2).Value = "ok"
                       
                                  Feuil3.Cells(test, 2).Value = (i * Feuil1.Cells(a, 2) + j * Feuil1.Cells(a + 1, 2) + k * Feuil1.Cells(a + 2, 2) + l * Feuil1.Cells(a + 3, 2) + m * Feuil1.Cells(a + 4, 2))
                                  Feuil3.Cells(test + 1, 2).Value = (i * Feuil1.Cells(a, 3) + j * Feuil1.Cells(a + 1, 3) + k * Feuil1.Cells(a + 2, 3) + l * Feuil1.Cells(a + 3, 3) + m * Feuil1.Cells(a + 4, 3))
                                  Feuil3.Cells(test + 2, 2).Value = (i * Feuil1.Cells(a, 4) + j * Feuil1.Cells(a + 1, 4) + k * Feuil1.Cells(a + 2, 4) + l * Feuil1.Cells(a + 3, 4) + m * Feuil1.Cells(a + 4, 4))
                                  
                                  test = test + 4
                       
                       
                       While j <= Feuil1.Cells(a + 1, 5) ' On mélange 5 farines'
                           While k <= Feuil1.Cells(a + 2, 5) ' On fait donc 5 boucles'
                               While l <= Feuil1.Cells(a + 3, 5) ' Qui iront de 1 à la valeur max'
                                  While m <= Feuil1.Cells(a + 4, 5)
            
                                        If (i * Feuil1.Cells(a, 2) + j * Feuil1.Cells(a + 1, 2) + k * Feuil1.Cells(a + 2, 2) + l * Feuil1.Cells(a + 3, 2) + m * Feuil1.Cells(a + 4, 2) = prot) And (i * Feuil1.Cells(a, 3) + j * Feuil1.Cells(a + 1, 3) + k * Feuil1.Cells(a + 2, 3) + l * Feuil1.Cells(a + 3, 3) + m * Feuil1.Cells(a + 4, 3) = lipides) And (i * Feuil1.Cells(a, 4) + j * Feuil1.Cells(a + 1, 4) + k * Feuil1.Cells(a + 2, 4) + l * Feuil1.Cells(a + 3, 4) + m * Feuil1.Cells(a + 4, 4) = glucides) Then
                                           'Si on a i * sa teneur en prot + j * sa teneur en prof + etc etc = valeur de prot cherchée'
                                           'Et la même chose pour les lipides puis les glucides'
                                           ' Alors on recopie le noms des farines du tableau + leur quantité dans la feuille 3'
                                                
                                              Feuil2.Cells(3, 2).Value = a
                                                
                                              Feuil3.Cells(Z, 1) = Feuil1.Cells(a, 1)
                                              Feuil3.Cells(Z + 1, 1) = Feuil1.Cells(a + 1, 1)
                                              Feuil3.Cells(Z + 2, 1) = Feuil1.Cells(a + 2, 1)
                                              Feuil3.Cells(Z + 3, 1) = Feuil1.Cells(a + 3, 1)
                                              Feuil3.Cells(Z + 4, 1) = Feuil1.Cells(a + 4, 1)
                                                
                                              Feuil3.Cells(Z, 2) = i
                                              Feuil3.Cells(Z + 1, 2) = j
                                              Feuil3.Cells(Z + 2, 2) = k
                                              Feuil3.Cells(Z + 3, 2) = l
                                              Feuil3.Cells(Z + 4, 2) = m
                                               
                                        End If
                                        m = m + pas
                                    Wend
                                    l = l + pas
                                Wend
                                k = k + pas
                            Wend
                            j = j + k
                        Wend
                        i = i + pas
                    Wend
                  End If
                
                Next glucides
            Next lipides
        Next prot
    Next a
    
    
    
    End Sub



    • Modifié Quentin78 samedi 8 avril 2017 17:48
    samedi 8 avril 2017 17:45
  • Bonjour,

    Est-ce que tu peux mettre le classeur, sans données confidentielles, sur OneDrive ou sur un autre site de partage et poster ici le lien correspondant ?

    Daniel

    samedi 8 avril 2017 17:57
  • Voici le lien du classeur : https://1drv.ms/x/s!As_1dT1GCGFznVu_kuBwPaaurii0

    Les données dessus sont les bonnes, rien de confidentiel.

    dimanche 9 avril 2017 19:04
  • Bonjour,

    Il faut que je comprenne bien le raisonnement. Ca ne va pas être immédiat.

    Daniel

    lundi 10 avril 2017 10:13
  • Tu as écrit :

    Le programme va ensuite faire des groupes de 5 farines. Prenons les 5 premières. 
    Pour chaque farine il va augmenter petit à petit leur quantité, et si à un moment donné j'obtiens une valeur comprise entre mes prot mini et maxi, lipides mini et maxi, glucides mini et maxi, alors ce mélange me convient. Le programme récupère alors le nom des farines puis l'écrit sur une feuil3, avec la quantité de chaque farine à coté.

    Si ce n'est pas le cas, est-ce que tu passes à un autre groupe (les farines des lignes 7 à 11) ou celles des lignes 3 à 7 en décalant d'une ligne à chaque fois ?

    Et si les composants de 4 farines remplissent les critères, est-ce bon ou faut-il obligatoirement 5 farines ?

    Daniel

    lundi 10 avril 2017 10:48
  • Encore des précisions concernant le tableau des farines :

    Les quantités des colonnes B, C et D correspondent à 1 g ? A quoi correspond la colonne "max" ? Est-ce qu'il s'agit de grammes ?

    Daniel

    lundi 10 avril 2017 10:54
  • Bonjour Daniel, 

    Alors : 

    Si ce n'est pas le cas, est-ce que tu passes à un autre groupe (les farines des lignes 7 à 11) ou celles des lignes 3 à 7 en décalant d'une ligne à chaque fois ?

    Et si les composants de 4 farines remplissent les critères, est-ce bon ou faut-il obligatoirement 5 farines ?

    Je me suis rendu compte hier que la logique du code n'était pas parfaite pour cette partie, j'ai modifié un peu. 
    Le programme doit : 
    Séléctionner une farine, dans mon tableau il commence par la farine de blé. 
    Il prend ensuite les 4 suivante, on a donc : 
    Farine de blé
    Farine de maïs (blanc)
    Farine de maïs (jaune)
    Farine de soja 
    Farine d'arachide 

    Si ce mélange ne fonctionne pas, il change la dernière farine, on obtient alors : 
    Farine de blé
    Farine de maïs (blanc)
    Farine de maïs (jaune)
    Farine de soja 
    Farine de lupin

    Et il change encore et encore la dernière farine. Quand il a testé tous les mélange avec comme base les 4 premières farines, donc : 
    Farine de blé, Farine de maïs (blanc), Farine de maïs (jaune), Farine de soja, il va changer la 4eme farine puis recommencer à changer la 5eme. 
    Puis on recommence avec la 3eme farine, on la changera elle aussi un à un, puis la seconde jusqu'à la première. D'après moi, ça permettra de faire tous les mélanges possibles. 

    On aura ainsi comme farine 1 les 18 farines, comme farine 2 les 17 suivante, pour la 3 les 16 suivante etc. 



    Les quantités des colonnes B, C et D correspondent à 1 g ? A quoi correspond la colonne "max" ? Est-ce qu'il s'agit de grammes ?Dans les colonnes B, C et D cela correspond à un pourcentage. 
    Si l'on prend la farine de blé, elle est composée à 10% de protéines, 10% de lipides et 80% de glucides par exemple. 
    La colonne max elle correspond à la quantité maximale de gramme. Dans mon mélange de 5 farines, je voudrais par exemple 200 grammes maxi de farine de blé. 




    lundi 10 avril 2017 11:25
  • Je vous met le nouveau code que j'ai changé hier, j'ai essayé de mettre des variables avec des noms plus explicites pour simplifier la compréhension. 

    Mon soucis de "ne répond pas" a été corrigé par la mise en place du pas, qui permet donc de faire des boucles de +10 en +10 par exemple, plutôt que de +1 en +1. Excel continue de ne pas répondre mais seulement une 20ene de secondes le temps que la macro soit terminée. 

    J'ai aussi corrigé le soucis d'hier où le programme passait directement de 2 à 15. 

    Mais je rencontre à nouveau un soucis, que je n'explique pas pour le moment. 
    Avec mon nouveau code (que se trouve plus bas) mon programme se lance et se termine, ça c'est bon. 
    Mais il ne trouve aucune solution. Or avec mon programme en C++ pour les mêmes valeurs en mini/maxi, celui-ci trouvait dans les 6000 solutions. 

    J'ai cherché à trouver mon erreur, en affichant des test. Et j'en tiens une. 
    Dans ma boucle "For ligne1 = 2 to 15" 'affiche la valeur de ligne1 ligne après ligne. J'obtiens bien : 
    2
    3
    4 etc jusqu'à 15. 

    Maintenant dans mes boucles while, j'affiche la somme de chaque poids des farines * leur quantité de prot, comme le programme ne trouve aucune solution je voulais voir les valeurs qu'il trouvait. J'ai donc demandé à ce que pour chaque "ligne1" il m'affiche ligne après ligne le mélange qu'il obtient (à voir dans le programme). 
    Et là j'obtiens : 
    20
    158
    rien (aucune valeur)
    561 
    rien (plus rien après)

    Donc je demande bien d'afficher en théorie 13 valeurs, comme dans ma première boucle, mais j'en ai que 3 avec une valeur vide au milieu. Je ne comprends vraiment pas pourquoi. 
    Voilà le nouveau code :

    Sub code()
        
    prot_mini = Feuil2.Cells(5, 9).Value
    prot_maxi = Feuil2.Cells(5, 10).Value
    
    lipides_mini = Feuil2.Cells(6, 9).Value
    lipides_maxi = Feuil2.Cells(6, 10).Value
    
    glucides_mini = Feuil2.Cells(7, 9).Value
    glucides_maxi = Feuil2.Cells(7, 10).Value
    
    pas = Feuil2.Cells(5, 6).Value
    
    test = 10
    
    
    
    For prot = prot_mini To prot_maxi
        For lipides = lipides_mini To lipides_maxi
            For glucides = glucides_mini To glucides_maxi
    
                If prot + lipides + glucides + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 3) + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 4) + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 5) = 1000 Then
                     Feuil2.Cells(1, 1).Value = "ok"
                        
                                         
                 For ligne1 = 2 To 15
                     
                     Feuil2.Cells(ligne1, 2).Value = ligne1 'On affiche ligne1 ligne après ligne, ça marche'
                     
                     For ligne2 = ligne1 To 16
                         For ligne3 = ligne2 To 17
                            For ligne4 = ligne3 To 18
                                For ligne5 = ligne4 To 19
                     
                                    While i <= Feuil1.Cells(ligne1, 5).Value
                                        While j <= Feuil1.Cells(ligne2, 5).Value
                                            While k <= Feuil1.Cells(ligne3, 5).Value
                                                While l <= Feuil1.Cells(ligne4, 5).Value
                                                    While m <= Feuil1.Cells(ligne5, 5).Value
                                                    
                                                    
                                                        
                                                           test2 = (i * Feuil1.Cells(ligne1, 2).Value + j * Feuil1.Cells(ligne2, 2).Value + k * Feuil1.Cells(ligne3, 2).Value + l * Feuil1.Cells(ligne4, 2).Value + m * Feuil1.Cells(ligne5, 2).Value)
                                                           Feuil2.Cells(ligne1, 1).Value = test2
                                                           
                                                           'je veux afficher la valeur de la somme à chaque fois que ligne1 change, donc on change de première farine, et ça ne marche pas'
                                                        
                                                        
                                                        
                                                        
                                                            If ((i * Feuil1.Cells(ligne1, 2).Value + j * Feuil1.Cells(ligne2, 2).Value + k * Feuil1.Cells(ligne3, 2).Value + l * Feuil1.Cells(ligne4, 2).Value + m * Feuil1.Cells(ligne5, 2).Value) = prot And (i * Feuil1.Cells(ligne1, 3).Value + j * Feuil1.Cells(ligne2, 3).Value + k * Feuil1.Cells(ligne3, 3).Value + l * Feuil1.Cells(ligne4, 3).Value + m * Feuil1.Cells(ligne5, 3).Value) = lipides And (i * Feuil1.Cells(ligne1, 4).Value + j * Feuil1.Cells(ligne2, 4).Value + k * Feuil1.Cells(ligne3, 4).Value + l * Feuil1.Cells(ligne4, 4).Value + m * Feuil1.Cells(ligne5, 4).Value) = glucides) Then
                                                            
                                                           
                                                            Feuil2.Cells(test, 10).Value = Feuil1.Cells(ligne, 1).Value
                                                            Feuil2.Cells(test + 1, 10).Value = Feuil1.Cells(ligne + 1, 1).Value
                                                            Feuil2.Cells(test + 2, 10).Value = Feuil1.Cells(ligne + 2, 1).Value
                                                            Feuil2.Cells(test + 3, 10).Value = Feuil1.Cells(ligne + 3, 1).Value
                                                            Feuil2.Cells(test + 4, 10).Value = Feuil1.Cells(ligne + 4, 1).Value
                                                            
                                                            Feuil2.Cells(test, 11).Value = i
                                                            Feuil2.Cells(test + 1, 11).Value = j
                                                            Feuil2.Cells(test + 2, 11).Value = k
                                                            Feuil2.Cells(test + 3, 11).Value = l
                                                            Feuil2.Cells(test + 4, 11).Value = m
                                                            
                                                            test = test + 7
                                                            
                                                            End If
                                                            
                                                        m = m + pas
                                                        Wend
                                                    l = l + pas
                                                    Wend
                                                k = k + pas
                                                Wend
                                            j = j + pas
                                            Wend
                                        i = i + pas
                                        Wend
                                    
                                    Next ligne5
                                Next ligne4
                            Next ligne3
                        Next ligne2
                    Next ligne1
                        
                End If
                
            Next glucides
        Next lipides
    Next prot
        
    
       
    
    End Sub
    



    lundi 10 avril 2017 11:40
  • Pour que le programme soit le plus clair possible je vais le décomposer et l'expliquer au mieux : 

    Sub code()

    'Dans cette partie on récupère les valeur mini et maxi des prot, des lipides et des glucides' prot_mini = Feuil2.Cells(5, 9).Value prot_maxi = Feuil2.Cells(5, 10).Value lipides_mini = Feuil2.Cells(6, 9).Value lipides_maxi = Feuil2.Cells(6, 10).Value glucides_mini = Feuil2.Cells(7, 9).Value glucides_maxi = Feuil2.Cells(7, 10).Value pas = Feuil2.Cells(5, 6).Value 'On définit la valeur du pas' test = 10 'valeur de test pour les affichages'

    'Dans cette partie on va trouver tous les mélanges pouvant faire 1kilo au total. Je cherche un mélange de 1 kilo. On va donc additionner la valeur des prot, lipides et glucides. Ayant déduit de ces valeurs la contenance dans les oeufs, je n oublis pas de les rajouter'
    
    For prot = prot_mini To prot_maxi
        For lipides = lipides_mini To lipides_maxi
            For glucides = glucides_mini To glucides_maxi
    
                If prot + lipides + glucides + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 3) + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 4) + Feuil2.Cells(9, 4) * Feuil2.Cells(11, 5) = 1000 Then
                     Feuil2.Cells(1, 1).Value = "ok" 'Si ça marche, un "ok" s affiche, et c est bien le cas actuellement'

    'On change les lignes, donc on change les farines. On prend les 4 premières, puis on change la 5eme ligne après ligne. On change ensuite la 4eme puis on change à nouveau la 5 eme jusqu à la 19eme. On changera alors la 4eme à nouveau, etc etc, jusqu à changer toutes les farines' 
    
    For ligne1 = 2 To 15
                     
                     Feuil2.Cells(ligne1, 2).Value = ligne1 'On affiche ligne1 ligne après ligne, ça marche'
                     
                     For ligne2 = ligne1 To 16
                         For ligne3 = ligne2 To 17
                            For ligne4 = ligne3 To 18
                                For ligne5 = ligne4 To 19

    'Ici rien ne change, on ajoute pas par pas des grammes au mélange, par exemple : 10 grammes par 10 grammes, jusqu à la valeur maxi de chaque farine'
    
    While i <= Feuil1.Cells(ligne1, 5).Value
                                        While j <= Feuil1.Cells(ligne2, 5).Value
                                            While k <= Feuil1.Cells(ligne3, 5).Value
                                                While l <= Feuil1.Cells(ligne4, 5).Value
                                                    While m <= Feuil1.Cells(ligne5, 5).Value

     'On vérifie que le poids de chaque farine * sa valeur de prot + sa valeur en lipides + glucides = à la valeur prot recherchée, lipides recherchée, glucides recherchée. La valeur étant définit par les boucles for du début, qui doivent donc faire 1 kilo'
    
    
    If ((i * Feuil1.Cells(ligne1, 2).Value + j * Feuil1.Cells(ligne2, 2).Value + k * Feuil1.Cells(ligne3, 2).Value + l * Feuil1.Cells(ligne4, 2).Value + m * Feuil1.Cells(ligne5, 2).Value) = prot And (i * Feuil1.Cells(ligne1, 3).Value + j * Feuil1.Cells(ligne2, 3).Value + k * Feuil1.Cells(ligne3, 3).Value + l * Feuil1.Cells(ligne4, 3).Value + m * Feuil1.Cells(ligne5, 3).Value) = lipides And (i * Feuil1.Cells(ligne1, 4).Value + j * Feuil1.Cells(ligne2, 4).Value + k * Feuil1.Cells(ligne3, 4).Value + l * Feuil1.Cells(ligne4, 4).Value + m * Feuil1.Cells(ligne5, 4).Value) = glucides) Then
                                                            
                                                           
                                                            Feuil2.Cells(test, 10).Value = Feuil1.Cells(ligne, 1).Value
                                                            Feuil2.Cells(test + 1, 10).Value = Feuil1.Cells(ligne + 1, 1).Value
                                                            Feuil2.Cells(test + 2, 10).Value = Feuil1.Cells(ligne + 2, 1).Value
                                                            Feuil2.Cells(test + 3, 10).Value = Feuil1.Cells(ligne + 3, 1).Value
                                                            Feuil2.Cells(test + 4, 10).Value = Feuil1.Cells(ligne + 4, 1).Value
                                                            
                                                            Feuil2.Cells(test, 11).Value = i
                                                            Feuil2.Cells(test + 1, 11).Value = j
                                                            Feuil2.Cells(test + 2, 11).Value = k
                                                            Feuil2.Cells(test + 3, 11).Value = l
                                                            Feuil2.Cells(test + 4, 11).Value = m
                                                            
                                                            test = test + 7
                                                            

     'On rajoute le pas à chaque fin du while, puis +1 à chaque ligne'
    
    
                                                       End If
                                                            
                                                        m = m + pas
                                                        Wend
                                                    l = l + pas
                                                    Wend
                                                k = k + pas
                                                Wend
                                            j = j + pas
                                            Wend
                                        i = i + pas
                                        Wend
                                    
                                    Next ligne5
                                Next ligne4
                            Next ligne3
                        Next ligne2
                    Next ligne1
                        
                End If
                
            Next glucides
        Next lipides
    Next prot
        



    • Modifié Quentin78 lundi 10 avril 2017 12:02
    lundi 10 avril 2017 11:58
  • Est-ce que tu pourrais expliquer ce que je t'ai demandé parce que je nage complètement... Est-ce que le fait de progresser par pas de 10 ne peut pas faire qu'on ne trouve jamais 1000 g ?

    Daniel

    lundi 10 avril 2017 13:14
  • J'abandonne. Désolé.

    Daniel

    lundi 10 avril 2017 16:52