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.
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 SubCdlt