XL 2019 Clignotement écran malgré Application.ScreenUpdating & Application.EnableEv

Nico05098

XLDnaute Nouveau
Bonjour les experts,

Je me permets de vous solliciter concernant une difficulté d'affichage.

En fait je ne suis pas un pro de VBA et j'ai commencé à créer un programme qui à grandit , grandit et grandit et je me retrouve avec une bonne solution (dont les utilisateurs sont satisfaits) mais le problème est le suivant :

- Vu qu'il y a des centaines de macro imbriquées (Utilisation de la fonction Call) et qui génèrent des ouvertures/fermetures de classeurs, Copier-Coller entre ceux-ci...

L'écran se met à "clignoter" lors des ouvertures successives des différents classeurs excel MALGRE l'utilisation de (Application.ScreenUpdating = False
Application.EnableEvents = False) dans les différentes Macros.

J'ai déjà essayé de mettre un USERFORM en premier plan mais rien n'y fait...

Des idées?

Je me demandais même s'il n'était pas possible d'ouvrir une petite animation QUI SE METTE ET RESTE EN PREMIER PLAN via VBA pendant que le process a lieu et de fermer après celle-ci à la fin.

L'idée serait de ne pas essayer de modifier la programmation actuelle qui donne les résultats voulus mais de masquer le clignotement.

Merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nico, et bienvenu sur XLD,
L'idée serait de ne pas essayer de modifier la programmation actuelle
J'ai bien peur que le ver soit déjà dans le fruit. Mais sans fichier test difficile d'être affirmatif.
On peut réduire ces clignotements voire les supprimer en :
1- Ouvrir les fichiers de façon invisible ( Lien )
2- Ne jamais faire de Select pour copier les données avec activation de feuille, mais des copies de range à range.
Mais peut être est ce déjà fait. :)

L'autre solution serait de masquer XL pendant les opérations, puis de le faire ré apparaitre en fin de mission, avec dans Thisworkbook :
VB:
Option Explicit
Private Sub Workbook_Open()
 Application.WindowState = xlMinimized
 Application.Visible = False
 UserForm1.Show 0
End Sub
( Ou dans Thisworkbook, ou dans une macro lorsqu'on en a besoin )
Mais là, on touche au design, donc à vous de voir si c'est faisable et quel est l'impact client.
 

Pièces jointes

  • Essai (V2).xlsm
    15.3 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Mettre une vidéo pour patenter me semble trop complexe pour si peu.
( faites une recherche sous google avec gif animé ou vidéo dans userform, je n'ai trouvé que des solutions complexes, qui plus ait avec gif sur disque et non dans fichier )
Un exemple simple avec juste une image.
 

Pièces jointes

  • Copie de Essai (V4).xlsm
    63.2 KB · Affichages: 5

Nico05098

XLDnaute Nouveau
Encore merci !!
J'ai essayé la solution et 2 problèmes surviennent :

1) Dans certaines macros, j'utilise la fonction : ActiveWindow.FreezePanes = False
Et là avec la nouvelle macro pour l'horloge (Gif ou image peu importe) il bloque --> Run-Time error 1004 : "Unable to set the FreezePanes Property of the Window Class" -- >Je pense que c'est lié à la consigne : " Application.Visible = False"

2) Le Gif ne s'affiche pas en premier plan, l'image n'apparaît pas --> Cfr photo jointe.

Merci pour votre aide
 

Pièces jointes

  • TEST1.jpg
    TEST1.jpg
    270.6 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nico,
Déjà, est que ma PJ du post #6 marche ? ( avec les deux fichiers enregistrés au même endroit )
Ensuite, après avoir essayé Window.FreezePanes, figer les volets n'impactent pas le userrform, je n'ai pas pu reproduire votre problème.
Si la macro Workbook_Open n'est pas touchée, elle devrait être fonctionnelle quelles que soient les autres macros puisqu'elle préempte XL dès l'ouverture.
Peut être est ce du à autre chose, mais cela dépend de votre fichier.
 

Statistiques des forums

Discussions
294 443
Messages
1 938 534
Membres
188 911
dernier inscrit
papagilou