Microsoft 365 Rafraichissement Userform

tbft

XLDnaute Accro
Bonjour à Tous

J'ai un soucis d'affichage avec un userform d'un fichier que je ne peux pas partager....
Je suis l'un des premiers à râler quand il n'y a pas de fichier...

Je vais essayer d'être claire et rapide:
L'userform exécute une macro relativement longue.
Et, pour ne pas laisser l'utilisateur dans le flou, cette macro complète en ajoutant du texte à une textbox.
Sauf, qu'au bout d'un moment, l'affichage d'Excel (et donc l'userform aussi) se bloque.

Pouvez-vous me dire si vous avez déjà rencontrer ce soucis et comment (si possible) vous l'avez réglé, s'il vous plait ?

D'avance merci.

Cordialement
 
Solution
Bonjour,

Ton problème est un grand classique rencontré lors de longues boucles.
Hélas je ne saurais te donner une solution efficace à tous les coups... 😕

Peut-être qu'un REPAINT bien placé (juste après la MàJ de la TextBox peut-être ?) pourrait fonctionner ?

Ou peut-être faut-il utiliser un DoEvent ?

vgendron

XLDnaute Barbatruc
Bonjour

il va falloir que tu joues du F8 pour voir à quel moment ca bloque et pourquoi
un screenupdating=false malvenu?
une entrée utilisateur que le code attend? ou qui est erronée
une boucle infinie...??

bref...tu as le choix :-D
 

tbft

XLDnaute Accro
Bonjour
merci pour la réponse
pour répondre aux propositions:
  • un screenupdating=false malvenu? : je n'utilise pas le screenupdating, car l'ouverture des fichiers csv se fait via open file et non worksheet.open
  • une entrée utilisateur que le code attend? ou qui est erronée : le code fonction (bien??) car il arrive toujours à la fin mais il y a juste l'écran qui se fige et qui se libère à la fin
  • une boucle infinie...?? non car le code va bien jusqu'au bout et le phénome ne se passe pas toujours au même endroit...
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
oui le problème est connu
essai simplement de faire un me.repaint juste avant la macro longue ou des les premiers tour de boucle
cela dit là on te répond en aveugle si on a pas au moins le code pour comprendre ce qui est si long ta question restera sans réponse concrète
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ton problème est un grand classique rencontré lors de longues boucles.
Hélas je ne saurais te donner une solution efficace à tous les coups... 😕

Peut-être qu'un REPAINT bien placé (juste après la MàJ de la TextBox peut-être ?) pourrait fonctionner ?

Ou peut-être faut-il utiliser un DoEvent ?
 
Dernière édition:

tbft

XLDnaute Accro
Je vous remercie pour vos réponses.
Maintenant que vous le dites, ce problème m'ai déjà arrivé sur d'autre fichier, en marquant aussi qu'Excel ne répond pas...comme si il avait planté...
J'utilise l'instruction me.repaint pour mettre l'userform lors de la modification des textbox qui servent à suivre l'avancement de la macro.
Par contre pouvez-vous m'en dire plus sure DoEvent, s'il vous plait?
 

dysorthographie

XLDnaute Accro
Bonjour Patrick,
re
doevents sert a libérer vba et un peu de mémoire pour qu'une éventuelle macro ou Evénement controls puisse se faire pendant qu'une macro lourde en mémoire
Doevents redone la main à Windows pour lui permettre de gérer sa pagination mémoire ce n'est pas la même chose car s'il n'a rien à libérer !!!!

Si tu utilises des set objet il faut obligatoirement un set Nothing car ça ça sature la mémoire !
 

tbft

XLDnaute Accro
Je suis en train de faire un essai.
C'est pas optimale mais je parie que cela vient de la place du DoEvents que j'ai placé pourtant en utilisant une analyse très poussé : Euh.... au hasard en faite.
Comme vous m'avez indiquer cela rends la main et permet de débloquer Excel.
Il ne me reste plus qu'à trouver le ou les emplacements pour mettre l'instruction magique.

Un grand merci pour votre aide
 

tbft

XLDnaute Accro
J'ai ajouté DoEvent aux <<sous>> macros qui gère la mise à jours de l'affichage.
Sa beug encore quand l'affichage n'est pas rafraichit.
Il faut que je trouve où en ajouter.
Mais le résultat est déjà génial....

Merci encore...
 

Discussions similaires

  • Question
Microsoft 365 Userform
Réponses
8
Affichages
837

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel