Bug affichage suite à l'éxécution du code
Marion
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un fichier Excel composé de plusieurs feuilles.
La 1ere est une page "Accueil" composée de bouton, elle mène vers d'autre page ou permet d'exécuter les macros.
Pour faire simple, les macros sélectionnent une partie des données d'un énorme tableau pour les synthétiser dans d'autre feuilles selon le bon vouloir de l'utilisateur.
Après avoir exécuté les macros du fichier, le résultat donné est le bon, jusque là tout va bien.
Elles se terminent sur l'affichage de la page de synthèse qui vient d'être générée.
Lorsque je veux modifier cette page (utiliser l'ascenseur pour descendre sur la page, ajouter/modifier du texte, supprimer des bordures, ...) il ne se passe rien. Par contre toutes les modifications que je fais sont faites sur la 1ère page d'accueil ....
Si je veux revenir dans un état normal, je dois changer d'onglet et y revenir. Là tout fonctionne normalement.
Est-ce que quelqu'un à déjà rencontré un problème de ce type ?
Je me débrouille un peu en macro, mon code n'est surement pas parfait. Mais il ne fait mention de la page "Accueil" qu'à la fin pour qu'en cas d'erreur l'utilisateur reste sur cette page.
Merci d'avance à ceux qui pourront me donner des petites pistes :)
J'ai créé un fichier Excel composé de plusieurs feuilles.
La 1ere est une page "Accueil" composée de bouton, elle mène vers d'autre page ou permet d'exécuter les macros.
Pour faire simple, les macros sélectionnent une partie des données d'un énorme tableau pour les synthétiser dans d'autre feuilles selon le bon vouloir de l'utilisateur.
Après avoir exécuté les macros du fichier, le résultat donné est le bon, jusque là tout va bien.
Elles se terminent sur l'affichage de la page de synthèse qui vient d'être générée.
Lorsque je veux modifier cette page (utiliser l'ascenseur pour descendre sur la page, ajouter/modifier du texte, supprimer des bordures, ...) il ne se passe rien. Par contre toutes les modifications que je fais sont faites sur la 1ère page d'accueil ....
Si je veux revenir dans un état normal, je dois changer d'onglet et y revenir. Là tout fonctionne normalement.
Est-ce que quelqu'un à déjà rencontré un problème de ce type ?
Je me débrouille un peu en macro, mon code n'est surement pas parfait. Mais il ne fait mention de la page "Accueil" qu'à la fin pour qu'en cas d'erreur l'utilisateur reste sur cette page.
Merci d'avance à ceux qui pourront me donner des petites pistes :)
A voir également:
- Bug affichage suite à l'éxécution du code
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
2 réponses
Bonjour Marion, bonjour le forum,
Difficile de t'aider sans le fichier ou le code. Peut être en rajoutant cette ligne à la fin du code :
Difficile de t'aider sans le fichier ou le code. Peut être en rajoutant cette ligne à la fin du code :
Application.ScreenUpdating = True
Quelle version d'Excel ?
Quel code pour afficher le page synthèse ?
Quel code pour afficher le page synthèse ?
Bonjour,
J'ai eu un problème similaire
en employant
Le problème semble lié à la nouvelle interface SDI apparue avec Excel 2013 : L'onglet affiché n'est pas l'onglet actif !!!
Voici une démo du problème (Test) et sa solution (ajouter ForEachWinDoEvents après le Application.ScreenUpdating = True)
Explication : le DoEvents n'agit que sur la fenêtre active, depuis Excel 2013, il faut en faire autant qu'il y a de fenêtres ouvertes dans l'application
Cordialement
Patrice
J'ai eu un problème similaire
en employant
Application.ScreenUpdating = Falseavec excel 2016.
Le problème semble lié à la nouvelle interface SDI apparue avec Excel 2013 : L'onglet affiché n'est pas l'onglet actif !!!
Voici une démo du problème (Test) et sa solution (ajouter ForEachWinDoEvents après le Application.ScreenUpdating = True)
Explication : le DoEvents n'agit que sur la fenêtre active, depuis Excel 2013, il faut en faire autant qu'il y a de fenêtres ouvertes dans l'application
Sub Test() Application.ScreenUpdating = False Set w1 = Workbooks.Add(xlWBATWorksheet) Set w2 = Workbooks.Add(xlWBATWorksheet) Set w3 = Workbooks.Add(xlWBATWorksheet) Application.ScreenUpdating = True 'Ajouter la ligne : ForEachWinDoEvents '(ci-dessus) w2.Activate End Sub Sub ForEachWinDoEvents() Dim win As Window For Each win In Application.Windows DoEvents Next win End Sub
Cordialement
Patrice