Problème d’Itérations entre Excel 2010 et 2021

Bonjour, j’adresse ce message aux experts d’Excel, après avoir eu ’un conseillerMicrosoft en ligne. Vous seuls serez susceptibles de pouvoir m’aider.

Le fichier Excel joint sur PC est autonome. Il permet, dans une grilleA1 à AK27 ; d’afficher des nombres croissants de 1 à 999 au maximum dans un emplacement aléatoire de la grille. A la fin, les 999 cellules de la grille sont renseignées et mémorisées dans le second onglet. Le calcul itératif est actif. Pour ce faire, retirer le « x » Reset grill on et mettre un « x » dans Start. Le remplissage commence.

Le problème précis est le suivant :

Développé sur Excel 2010, il fonctionne très bien. C’est è dire que pendant que les itérations s’écoulent, l’affichage des nombres , dans la grille est visible. A la fin d’un cycle d’itérations, un re calcul d’Excel, le fait poursuivre.

Depuis peu, sur un autre PC, ce logiciel est lancé par Excel 2021. Et là, petit problème dérangeant.

En effet, les mêmes manipulations ne provoquent l’affichage des nombres , dans la grille, qu’à la findu cycle d’itérations en cours, et seulement à la fin, et la progression d’affichage n’est pas visible, tant que le cycle n’est pas terminé, ce qui est dérangeant, surtout en configurant un nombre important d’itérations.

Malgré des comparaisons des 2 config d’Excel et multiples essais, en ce sens, je ne sais pas ce qu’il faut modifier, pour supprimer ce problème.

Les lieux d’action sont les suivants : BG35/36/37 pour créer les emplacements aléatoires et la colonne BL pour les placer dans l’ordre de création.

Il y a probablement une configuration d’Excel 2021 qui doit permettre de visualiser cette progression, je l’espère.

Les onglets sont protégés sans mot de passe.

Merci d’avance de votre précieuse aide.

Je n'ai pas vu ici comment vous envoyer le fichier Excel 376Ko. Me contacter pour le recevoir.

15grilcel-maint1.zip (253.05 Ko)
image grillcel

Bonsoir,

Essayez ceci: ajoutez "DoEevents" après chaque "Application.EnableEvents = True"

D"ailleurs tous ces "Application.EnableEvents =False" et "Application.EnableEvents = True" sont-ils bien utiles? au début et à la fin, c'est suffisant.

Le code sans tous ces "Application.EnableEvents":

Option Explicit

Private Sub Worksheet_Calculate()
    If Range("GY1").Value <> "GC" Then Exit Sub
    On Error GoTo Sortie
    Application.EnableEvents = False
    If ActiveSheet.Name = "Calcul grille" And Range("HC3").Value = "" And Range("HC11").Value = "" And Range("HB17").Value = "" And Application.MaxIterations <> Range("HA1").Value Then
        Application.MaxIterations = Range("HA1").Value ' pas posé & pas d'ID 8It
        DoEvents
    End If
    If ActiveSheet.Name = "Calcul grille" And Range("HF11").Value <> "" And Range("HF11").Value = Range("HA4").Value And Application.MaxIterations <> Range("HF11").Value Then
        Application.MaxIterations = Range("HF11").Value ' pas posé & 'ID ok 16It
        DoEvents
    End If
    If ActiveSheet.Name = "Calcul grille" And Range("HD12").Value <> "" Then 'posé & 'ID ok
        Do While Range("HD13").Value = ""
            If Range("HC5").Value <> "" Then GoTo Sortie
            Application.MaxIterations = Range("HA1").Value '8It
            DoEvents
        Loop
    End If
    If ActiveSheet.Name = "Calcul grille" And Range("HF13").Value <> "" And Range("HF13").Value = Range("HA4").Value And Application.MaxIterations <> Range("HF13").Value Then
        Application.MaxIterations = Range("HA3").Value '' posé & 'ID ok x*16It
        DoEvents
        Module1.ItCLcalcul
    End If
    If ActiveSheet.Name = "Calcul grille" And Range("HF17").Value <> "" And Range("HF17").Value = Range("HA4").Value And Application.MaxIterations <> Range("HF17").Value Then
        Application.MaxIterations = Range("HF17").Value 'posé & 'ID ok & défaut 18It
        DoEvents
    End If
    If ActiveSheet.Name = "Calcul grille" And Range("HF18").Value <> "" And Range("HF18").Value = Range("HA4").Value And Application.MaxIterations <> Range("CF18").Value Then
        Application.MaxIterations = Range("HF18").Value 'posé & 'ID ok & fin 18It
        DoEvents
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Rechercher des sujets similaires à "probleme iterations entre 2010 2021"