Application.EnableCancelKey = xlDisabled désactivera les possibilités d'interruption utilisateur par la touche escape, cela évite d'avoir à les gérernon je n'ai pas pensé à ça. J'ai juste vu passer Application.EnableCancelKey dans mes recherches Web en me disant que je devais m'y intéresser mais ton message m'indique qu'il faut que j'aille plus loin.
Seule la 2ème ne provoque pas d'interruption du code.
Là je déprimetoutes, chez moi, provoquent une interruption, aucune ne fonctionne
Oui et c'est gênant si on distribue son appli VBA à d'autres.Ça montre la disparité des comportements.
Application.EnableCancelKey = xlDisabled désactivera les possibilités d'interruption utilisateur par la touche escape, cela évite d'avoir à les gérernon je n'ai pas pensé à ça. J'ai juste vu passer Application.EnableCancelKey dans mes recherches Web en me disant que je devais m'y intéresser mais ton message m'indique qu'il faut que j'aille plus loin.
Sub SendKeys1(Keys As String)
Dim CancelKeyStatusAtCallTime As Integer
CancelKeyStatusAtCallTime = Application.EnableCancelKey
If InStr(UCase(Keys), "{ESC") > 0 Then Application.EnableCancelKey = xlDisabled
CreateObject("wscript.shell").SendKeys (Keys)
If Application.EnableCancelKey <> CancelKeyStatusAtCallTime Then Application.EnableCancelKey = CancelKeyStatusAtCallTime
End Sub
Ok chez moi aussiLe "bonne méthode" étant donc (pour moi en tous cas)
lesquels ?Le "bonne méthode" ne me venant pas toujours du 1er coupj'ai fait de petits ajustements .
ah, ok, tu mémorises l'état !Dans le Post #38 juste la manière de gérer le Application.EnableCancelKey.
Sub A()
SendKeys ("a~")
Réactive_Clavier_Num
End Sub
Sub Réactive_Clavier_Num()
Application.SendKeys ("{Numlock}")
End Sub
Sub AA()
SendKeys ("AA~")
SendKeys ("AA~")
Réactive_Clavier_Numérique
End Sub
Sub AB()
SendKeys ("AB~")
Réactive_Clavier_Numérique
End Sub
Sub ABC()
SendKeys ("A~")
SendKeys ("B~")
SendKeys ("C~")
Réactive_Clavier_Numérique
End Sub
Sub Réactive_Clavier_Numérique()
With Application
DoEvents
Application.SendKeys ("{NUMLOCK}"), True
Application.SendKeys ("{NUMLOCK}"), True
End With
End Sub
Sub Test3()
For i = 1 To 3
Application.SendKeys "(%{1068})", True 'avec"%"=fenetre active ; sans le "%" =plein ecran
Application.SendKeys ""
DoEvents
ActiveSheet.Paste
Next
End Sub
Sub Test4()
For i = 1 To 4
Application.SendKeys "(%{1068})", True 'avec"%"=fenetre active ; sans le "%" =plein ecran
Application.SendKeys ""
DoEvents
ActiveSheet.Paste
Next
End Sub