Maintenir affichage USF lorsqu'on travaille sur 2 classeurs
Bonjour,
Je me permets de venir vers vous car je cherche bloque sur l'affichage d'un USF.
Je lance un USF sur un premier classeur en mode non modal pour dire que EXCEL est en train d'exécuter des macros en arrière plan.
Dans les macros en cours d'exécution, il s'agit de supprimer des feuilles sur un deuxième classeur ouvert par macro (mais non visible).
Le souci est que lorsque les macros s’exécutent, le USF apparait puis disparait puis réapparait sur mon 1er classeur comme s'il était actualisé. Ce n'est pas gênant mais pas très propre.
J'ai essayé d'utiliser Application screenupdating = False mais cela ne change rien. J'ai trouvé une info sur un forum qui évoque cela mais je n'ai pas le code associé.
Maintenant il y a toutes les recommandations d'usage en ce qui concerne l'utilisation de Userform sur différents classeurs ouverts en même temps, car il faut s'assurer que chaque object est référencé complètement avec le nom du workbook, sinon ce sera le plantage assuré.
Je pensais pouvoir écrire un équivalent du code ci-dessous dans ma macro, sans succès:
Sub () Userform1_Initialize
Wbkc = ThisWorkBook
Wbkc.UserForm1.Show 0
'Suite du code
End SubAuriez-vous une piste svp ?
Merci beaucoup
JB
Bonjour JeanBaptisteP,
Sans fichier, il est difficile de répondre ... Je m'interroge sur le pourquoi du formulaire en mode non modal, en général c'est pour pouvoir intervenir sur des feuilles du classeur tout en conservant le formulaire ouvert si ce n'est pas votre cas, le mode non modal ne me semble pas nécessaire. Les clignotements peuvent aussi provenir du code qui est exécuté si dans ce code il y a des objets sélectionnés / activés.
Si cela ne vous aide pas désolé mais avec un fichier (sans données persos) le diagnostic serait beaucoup plus pertinent.
Cdlt,
Cylfo
Bonjour Cylfo,
Merci beaucoup pour votre réponse.
Je vais tenter de produire un fichier exemple en retirant les données perso.
Peut-être dois-je modifier l'affichage de mon userform justement.
Comment procéder pour informer mes collaborateurs que les macros s'en en train de s'exécuter en arrière plan ? (car le traitement est assez long et certains collaborateurs quittent EXCEL avant la fin du traitement)
Je pensais afficher un USF comme cela les macros continuent d'être exécutées en arrière plan tout en affichant le USF au premier plan. Si vous avez une autre solution je suis preneur.
Effectivement on passe du classeur 2 au classeur 1 pour revenir au classeur 2, peut-être que le clignotement est dû à cela. Je vais regarder
Je fais au mieux pour vous envoyer une copie de mon classeur.
Bonne journée
JB
Bonsoir,
Je me permets de revenir vers vous. J'ai cherché sur plusieurs forums et il faut ajouter DoEvents sous le code USF.Show0
Savez-vous pourquoi ?
J'ai fait le test et c'est bon. Je vais essayer avec d'autres classeurs pour voir si c'est toujours ok. Je reviendrais clôturer le sujet après ma vérification.
Bonne soirée à tous
JB