Bonjour
J'aimerai savoir s'il est possible d'afficher une MSGBOX du style patientez traitement en cours et ce sans interférer le programme, une sorte de message d'information...
Je sais pas si j'ai été clair dans ma demande
Merci d'avance
Version imprimable
Bonjour
J'aimerai savoir s'il est possible d'afficher une MSGBOX du style patientez traitement en cours et ce sans interférer le programme, une sorte de message d'information...
Je sais pas si j'ai été clair dans ma demande
Merci d'avance
re,
je pense qu'il faut passer par un USF non modal avec un label avec la texte "veuillez tricoter en attendant la fin", pour ceux qui aiment le tricot (je plaisante, bien sur), je ne pense pas qu'avec une MSGBOX, ça soit possible mais je peux me tromper
Merci casefayere,
C'est malheureusement ce que je pensais :s
Bon ba je m'en retourne a un USF alors
Merci a bientot
Bonjour,
Voir ici http://support.microsoft.com/kb/462855/fr
Bonjour Philippe,
je pensais que ma solution était plus simple dans la mesure où l'USF est non modal sans oublier le "repaint"
Code:
1
2
3
4
5
6 sub gnagna() UserForm1.Show UserForm1.Repaint ...le code unload userform1 end sub
Bonjour,
je n'arrive pas à comprendre comment tu veux procéder casefayere.
En ce qui concerne la solution : http://support.microsoft.com/kb/462855/fr
je n'arrive pas à le faire marcher :s
il bug dès le début (la ligne en orange):
Code:
1
2
3
4
5
6 Sub DébutMacro() Application.EnableCancelKey = xlDisabled DialogSheets("Dialog1").Show End Sub
Merci de me venir en aide une nouvelle fois ... :s
Code:
1
2
3
4
5
6
7
8
9
10
11 Sub DétecteAffichageBoite() Application.SendKeys "~" MsgBox "Message fantôme" Call ma_procedure Application.Wait Now() + #12:00:05 AM# Application.DialogSheets("Dialog1").Hide Application.EnableCancelKey = xlInterrupt End Sub
Bonjour,
Ton message d'erreur sur la ligne DialogSheets("Dialog1").Show
provient vraisemblablement parce-que tu n'as pas créé cette boîte. (Clic droit sur un onglet sélection de Insérer et dans la boîte de dialogue sélectionner Boite de dialogue Microsoft Excel 5.0
Excel va créer une feuille nommée Dialogue1 qui contient donc une boite de dialogue. C'est cette feuille qui est appelée par DialogSheets
J'avoue n'avoir aucune expérience sur ce type de feuille qui est provient de version antérieure.
Quand j'ai référencé la page de Microsoft, je n'ai pas fait une lecture approfondie du sujet.
Ah ouais quand même ^^ fallais le savoir ça lol
Bon alors j'ai bien créer la boite de dialogue et supprimer les boutons "ok" et "annuler" comme c'est dit dans la page http://support.microsoft.com/kb/462855/fr
Seulement ca ne marche toujours pas, Si j'ai compris, la deuxième macro est censé commencé lorsque la premiere est activé ?
je ne comprend pas trop...
Merci en tout cas corona déjà
Sinon j'ai trouver ce code mais ca ne marche pas nan plus :s ca bug au chargement du formulaire...
Merci de me lireCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub Workbook_open() 'dans le module thisWorkbook , événement à l'ouverture du classeur Load WaitBox 'on charge le formulaire en mémoire end sub Sub VotreTraitement() 'la sub qui contient le gros traitement qui peut être dans un module Application.Cursor = XlWait 'affiche le sablier WaitBox.Show vbModeless 'affiche la waitbox mais continu le traitement WaitBox.Repaint 'raffraichit le contenu affiché sinon on a une boite blanche vide 'placer ici votre traitement... WaitBox.hide 'masque la waitbox Application.Cursor=XlDefault 'remet le curseur par défaut End sub Private Sub WorkBook_BeforeClose(Cancel as Boolean) 'dans module thisWorkbook Unload WaitBox 'decharge la waitbox de la mémoire End sub
bonjour
tu cré simplement un userform que tu nomme "mess_attente" par exemple
tu y met le message dans un label ou un textbox que tu a préalablement placer dans ton userform
et dans la macro qui est sencée faire un travail plus ou moins long
tu y met au debut de cette macro juste en dessous de l'enoncé de la sub
Code:mess_attente.show 0
et a la fin de la macro juste au dessus detu y metCode:end sub
ca te permetra de le personaliser un petit peuCode:unload mess_attente
exemple:
voilaCode:
1
2
3
4
5
6
7
8
9 sub travail_tres_long mess_attente.show 0 ' ici toute ta macro for i = 1 to 1000000 next 'ensuite on ferme le userform unload mess_attente end sub
au plaisir
youhou ^^
Merci ca marche très bien
Merci beaucooup
Cordialement
DoDo