Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 affichage curieux pendant l'exécution d'une macro

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous

Je reviens pour un p'tit souci d'affichage à l'exécution d'une macro.
Ce souci n'est pas gênant quant au fonctionnent du fichier mais c'est plutôt désagréable :
Vous le verrez avec la photo ci-dessous, l'affichage feuille est normal au départ :

Mais quand je clique sur le bouton recherche, voici ci-dessous le nouvel affichage :

J'utilise un code incluant comme vous le voyez la recherche Find.
Toutefois, dès que l'objet de la recherche est collé dans "Find", l'affichage redevient normal.
Comme je le dis plus haut, ce n'est pas gênant au niveau fonctionnel mais gênant à la vue.

Auriez-vous déjà rencontré ce souci ?
Si quelqu'un a une idée pour empêcher cet affichage intempestif, je suis preneur

Curieusement, lorsque j'exécute la macro à partir du code dans vba .... ça ne se produit pas.
Je ne sais pas si je pourrai reproduire le souci dans un fichier test mais si besoin, j'essaierai d'en faire un.
Merci déjà pour m'avoir lu.
Je vous souhaite une bonne fin de journée,
Prenez soin de vous,
lionel,
 

TooFatBoy

XLDnaute Barbatruc
C'est pour cela que j'avais bien précisé
Mon VBA ne connait pas ActiveRows (de manière native)
"L'avantage", c'est que cette erreur ne génère pas d'erreur mais renvoie n'importe nawak
La preuve
OK, donc la réponse à ma question semble être "oui", ça aurait pu être une fonction si je comprends bien.

ActiveRows n'étant pas connu d'Excel, il doit être considéré par Excel comme étant une variable, et s'il n'y a pas d'Option Explicit, ça ne génère bien sûr pas d'erreur, je suppose.
 

TooFatBoy

XLDnaute Barbatruc
J'ai trouvé Marcel32 avait raison il fallait tout simplement placer :
Application.EnableEvents = False
Application.ScreenUpdating = False
J'avais bien parlé de ScreenUpdating sans être sûr, loin de là...
J'avais pensé aux événements, mais n'y comprenant pas grand chose, je n'avais pas abordé le sujet.

Enfin, je crois que le fait de ne pas utiliser les Activate et Select est plus efficace pour ce problème, et en plus ça fait tourner la macro plus rapidement.
 

Usine à gaz

XLDnaute Barbatruc
En fait j'avais placé :
Application.EnableEvents = False
Application.ScreenUpdating = False
au niveau ou le code agit si les conditions de blocage ne sont pas existantes,
mais il fallait le placer en tout début du code.
lionel,
 

Staple1600

XLDnaute Barbatruc
Re

•>Marcel32
A force d'être confiné, on risque de finir con
(je parle uniquement pour moi bien sûr )
La preuve
VB:
Sub Pour_Marcel32()
Dim ActiveRows&, la_ligne_A_Marcel&
Application.Goto Cells(Application.RandBetween(1, 32), "S")
ActiveRows = ActiveCell.Row
la_ligne_A_Marcel = Rows(Val("Marcel32") + Val(Chr(51) + Chr(50))).Row 'pour le gag ;-)
MsgBox ActiveRows
MsgBox la_ligne_A_Marcel
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

•>arthour973
Si je précise
•>Pseudo
C'est que le message s'adresse à Pseudo
Donc le message#21 s'adressait à ?


PS: Dans ce cas, change ta signature
"Seule la connerie de l'humain envers l'humain et son biotope en finira avec l'Humanité"
Ce qui sera une bonne chose pour Gaia
(Oh zut, je viens de refaire une rechute de nihilisme)
 

Staple1600

XLDnaute Barbatruc
Re

•>Marcel32
Tu as testé ?
Parce que chez moi, la ligne à Marcel elle vaut 32
J'espère que tu faisais de l'humour ? T'es pas vexé pour de vrai, hein ?
Parce que le code du message#21 répondait en mode détente à ta question du message#16
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…