Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016VBA - Comment afficher le prompt d'interruption
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 !
Alors il est vrai que Stop permet le debug (affichage des valeurs de variables) et la continuation de l'exécution avec l'interface du VBE.
Donc on peut avantageusement remplacer le MsgBox par un Stop.
Ça reste une gestion programmée du Control + Pause mais c'est plus léger.
re
bonjour @Dudu2
ben ...
createobject("wscript.shell").sendkeys + ,les touches ctrl et pause
il existe aussi une api windows pour afficher les messages avec leur numero de code windows je dois avoir ça quelque part
mais ou là c'est une autre histoire
En fait c'est un peu compliqué.
Je suis dans un UserForm qui simule un MsgBox et je voudrais que Ctrl + Pause agisse comme pour une MsgBox standard, c'est à dire arrête le code et affiche le dialogue de l'exécution interrompue.
Il y a 2 cas.
1er cas: le UserForm est en vbModal: le code est interrompu sur le .Show mais pas de dialogue (fichier joint).
On peut intercepter le Ctrl + Pause (KeyCode = 3 si EnableCancelKey = False) mais comment afficher le dialogue ?
2ème cas: le UserForm est en vbModeless (en "pseudo-modal"): le code est interrompu avec dialogue d'exécution interrompue après le MsgBox qu'il a fallu ajouter (c'est pas vraiment ce que je veux) pour que l'interruption soit sortie du code du UserForm (fichier joint). Mais ce n'et pas 100% garanti. A condition de laisser les instructions sans pause (DoEvents) sinon ça ramène l'interruption dans le code du UserForm.
En fait c'est trop compliqué, laissez tomber cette question.
Suffit d'essayer.
Mais ne perds pas trop de temps là-dessus. Je crois que c'est un truc imaginaire non réalisable.
Sauf si tu sais via l'API afficher la boite de dialogue d'Exécution Interrompue.
je sais que ça existe mais c'est dans mes archives
chez moi ctrl+pause au keydown sur textbox ne donne pas 3
d'ailleurs j'ai fait le test avec la vraie mainip "shift+pause" et 3
la vrai répond le 3 walouh
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Escape
If KeyCode = 27 Then
Unload Me
Exit Sub
End If
'Control
If KeyCode = 17 Then Exit Sub
'Pause
If KeyCode = 19 Then Exit Sub
'Control + Pause
If KeyCode = 3 Then
MsgBox "KeyCode = 3 => Control + Pause"
Exit Sub
End If
MsgBox "KeyCode = " & KeyCode
End Sub
En fait l'idée serait d'inhiber le Control + Pause (Application.EnableCancelKey = False) ce qui n'empêche pas d'intercepter le fait d'entrer Control + Pause (KeyCode = 3) et d'afficher le dialogue d'Exécution Interrompue par un moyen quelconque (API ou SendKeys). Je vais essayer le SendKeys.
En UserForm Modal c'est le mieux que je puisse faire. Mais c'est pas l'idéal car il faut faire un MsgBox en cas d'interruption mais c'est mieux que rien.
- 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