Cacher fichier pendant execution macro

  • Initiateur de la discussion Initiateur de la discussion Pierre
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Pierre

Guest
Bonjur,
Je suis débutant de chez débutant !!
Mon niveau : utiliser la fonction enregistrer une macro et la retravailler de façon mineure avec VBA.
Mon PB : A partir d'un fichier A, je lance des macros avec 1 bouton. Ces macros créent 1 fichier B font des calculs et de la mis en forme. Or toute cette phase de travail n'est pas très estétique.
Je voudrais laisser le fichier A à l'écran, le B toujours caché et faire apparaitre à l'écran des boites de dialogue qui indiquent l'avancement des traitements.
Et ??? Je n'y arrive pas !!!
Meric de votre aide !!!
Pierre :huh:
 
Super, deux lignes bien senties !!
Ca fait tout de même plus propre.

Reste maintenant que je ne sais pas comment on fait apparaitre une boite message sans qu'il y ait besoin de cliquer sur OK pour continuer !!!

Merci pour votre aide.

Pierre
 
Bonjour à tous,

Tu peux aussi utiliser des messages sur la barre d'etat (en bas de l'écran)

Dans tes lignes tu écris par exemple:
Application.statusbar= 'Veuillez patienter, phase 1 en cours'
ton code de la la phase 1
Application.statusbar= 'Veuillez patienter, phase 2 en cours'

etc

Pour terminer:
Application.statusbar= False

A+
Michel
 
bonjour à tous

j'employe ce qui suit

au début du code : FastRun=False

à la fin du code : FastRun=True



Function FastRun(Setting)
'merçi à Peter Fossey, mpep

Application.StatusBar = 'Updating Excel settings, please wait...'
Application.EnableCancelKey = xlDisabled
Application.ScreenUpdating = Setting
Application.DisplayAlerts = Setting
Application.Interactive = Setting
If Setting = False Then Application.Calculation = xlCalculationManual
If Setting = False Then Application.Cursor = xlWait
If Setting = True Then Application.Calculation = xlCalculationAutomatic
If Setting = True Then Application.Cursor = xlDefault
Application.StatusBar = False

End Function
 
Merci à tous
Ca commence à avoir de la gueule !! mais comme je l'ai dit dans mon 1er post, je suis du niveau triple buse, et cela a des conséquences :

Pour Spock et Bebere : là on a atteint mon seuil d' incompétence !!!
j'ai essayé de mettre les lignes de bebere mai j'ai du coup des erreur à l'exécution (de plus je ne sais pas ce que cela est supposer faire !!)

Pour Michel M : Ca marche, amis ce n'est pas tès visible pour l'utilisateur qui croit que son poste est planté car il n'y a pas de réaction.

Qui peut me disre comment on fait un trus du type Msgbox, mais sans avoir à le confirmer pour que la suite des traitements s'exécute ?

Merci de votre aide
 
Bonjour Pierre, Michel_M, Bebere, Eric_S, Mr Spock, le Forum

Ci-joint une mise en oeuvre de solution UserForm comme laissé entendre par notre ami Vulcain 😉


NB ne fonctionnera pas sous Excel 97 (Mode Non Modal refusé)

Bon Dimanche
@+Thierry [file name=USF_Please_Wait.zip size=9783]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Please_Wait.zip[/file]
 

Pièces jointes

Ca y est, j'ai pris un peu chez tout le monde et ça marche.
Bien que le mieux soit l'énemi du bien, je voudrais maintenant demander à l'utilisateur sous quel nom il veut enregistrer le fichier final.
Merci de vos conseils.

Pierre
 
_Thierry écrit:
Ci-joint une mise en oeuvre de solution UserForm comme laissé entendre par notre ami Vulcain 😉


NB ne fonctionnera pas sous Excel 97 (Mode Non Modal refusé)

Bon Dimanche
@+Thierry [file name=USF_Please_Wait.zip size=9783]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Please_Wait.zip[/file]

Pas mal la ligne : DoEvents 'NB Ultra important pour raffraichir le UserForm
C'est vrai que apres quelque boucle ça risque de ne plus 'bouger'.
Pour ça les StatusBar sont redoutables.
 
Bonjour à tous

Dis moi, Thierry, il y a une raison dans ce cas précis pour utiliser un doevents plutôt qu'un UserForm1.repaint qui me parait plus approprié ?
Je blague pas, je me pose vraiment la question, je passe peut être à coté de quelque chose.

Cordialement, A+
 
Bonsoir le fil, bonsoir le forum,

Trop fatigué maintenant pour voir la démo de Thierry mais je connais suffisemment l'animal pour imaginer qu'il a réglé le problème.
Je me permets quand même une opinion. Pourquoi pas, tout simplement un Cadre Texte contenant le message (un Shape quoi) qui aurait la propriété Visible = False au début. À un moment donné du code on lui applique la propriété Visible = True pour le remasquer en fin de code. Il faudrait certainement permettre l'actualisation de l 'affichage (Application.ScreenUpdating) avant et la bloquer juste après. Je n'ai pas testé aussi se peut-il que ça ne fonctionne pas. Auquel cas veuillez considérer que je n'ai rien dit...

Au fait Yeahou, si tu veux repaindre les UserForms il me reste encore un pot de «Gris Tomate» et une fin de pot «Bleu Cerise». Si ça peut servir...
 
Bonjour Yeahou, Robert, le Fil, le Forum

Je suis ultra à la bourre, mais je pense que le repaint peut se substituer à l'ouverture du Userform (le premier DoEvents) mais pas pour mettre le label à jour en cours de boucle (le second DoEvents)

Je n'ai pas le temps de tester maintenant, à l'époque dans les archives il y a eu des démos de ma part avec ça...

Bonne Journée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
28
Affichages
3 K
Réponses
1
Affichages
919
A
B
Réponses
2
Affichages
886
florence
F
Retour