Excel : Afficher un cursor animé [Résolu]

Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
- - Dernière réponse : babu26
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
- 5 oct. 2014 à 09:14
Bonjour,
Pendant une phase de macro pouvant durer quelques minutes, comment figer toutes actions dans un classeur et afficher un sablier animé (ou toute autre image qui tournerait).
Merci.
D'autre part : une FAQ est-elle consultable ? Si oui, où ? Bab
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Ce que tu pourrais faire beaucoup plus astucieusement :
pendant le déroulement de ta macro, afficher un userform dont la propriété ShowModal est à True.
Il sera dès lors impossible à l'utilisateur d'accéder, pendant toute la durée de cet affichage, à ton classeur, que ce soit avec la souris ou avec le clavier.
Profite de ce userform pour y afficher ce que tu veux (message d'attente, par exemple)
Pour empêcher l'utilisateur de fermer lui-même ce Userform : ==>> rien de plus simple : utilise son évènement queryclose et décide de la valeur à donner à cancel en fonction de ce que c'est l'utilisateur qui demande à "sortir" (closemode = vbFormControlMenu) ou que cette commande est faite par code (closemode = vbFormControlMenu
A la fin de ta macro : instruction de fermer ce userform
C'est là une démarche plus prudente.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

babu26
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
-
Bonjour.
Pb. résolu par une image couvrant la totalité de la feuille, affichant Patience, je travaille; Je pourrais aussi rendre invisible tous les boutons de commande (?).
Merci toutefois de ta rréponse, quoique je ne sais ouvrir un autre userform.
Bab
Commenter la réponse de ucfoutu
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
Ceci peut-être ?
    Application.Cursor = xlWait
Application.Cursor = xlDefault

Mais ça n'empêchera personne d'aller se promener ailleurs que sur ton fichier. Le mieux serait peut-être de leur mettre un message explicatif en début de macro "À vos risques et péril si vous cliquez quelque chose..." :)
Commenter la réponse de cs_MPi
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
Bonjour,
comment figer toutes actions dans un classeur
veut dire que tu veux empêcher l'utilisateur d'utiliser sa souris et son clavier.
Une fonction de la librairie User32 de l'Api de Windows te permet de le faire. Il s'agit de la fonction BlockInput.
Je ne te conseille certainement pas de l'utiliser, bien au contraire, car il suffirait d'une interruption inopinée (un bug dans ta macro ou n'importe quoi allant de travers pour que tout reste bloqué !)

Commenter la réponse de ucfoutu