Bug affichage suite à l'éxécution du code

Fermé
Marion - Modifié par Marion le 22/09/2016 à 14:24
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 22 sept. 2016 à 15:32
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 :)
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 sept. 2016 à 14:52
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 :
Application.ScreenUpdating = True

0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
22 sept. 2016 à 14:56
Quelle version d'Excel ?
Quel code pour afficher le page synthèse ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
22 sept. 2016 à 15:32
Bonjour,

J'ai eu un problème similaire
en employant
 Application.ScreenUpdating = False
avec 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
0