Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment arreter une macro dans Excel 2007

5 réponses
Avatar
Fricotin Bibi
J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas a
arreter le programme autrement qu'en desactivant l'execution des macros. Y a
t'il un autre moyen ?

merci

5 réponses

Avatar
Patrick BASTARD
"Fricotin Bibi" a écrit dans le message de
news:
J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas a
arreter le programme autrement qu'en desactivant l'execution des macros. Y
a t'il un autre moyen ?

merci



Oui.
--

Patrick
Avatar
Patrick BASTARD
Bonsoir,"Fricotin Bibi"


En complément de ma réponse précédente, de plus amples informations, telles
que le code en question, permettraient de proposer une solution plus
pertinente.

--
Bien ,

Patrick
patrick.bastardchezdbmail.com


J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas a
arreter le programme autrement qu'en desactivant l'execution des macros. Y
a t'il un autre moyen ?

merci

Avatar
Armel
Bonsoir,

Et en posant un point d'arrêt dans le code vba ?

Le 25/04/2010 21:02, Fricotin Bibi a écrit :
J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas
a arreter le programme autrement qu'en desactivant l'execution des
macros. Y a t'il un autre moyen ?

merci
Avatar
michdenis
Bonjour,

Désactiver l'exécution des macros n'arrête pas une macro
elle empêche son exécution.

Explique davantage ce que tu veux faire...

Tu veux arrêter une macro avant la fin de son exécution ?
À l'aide d'une autre macro ? Un arrêt d'urgence ?
Peux-tu publier ici ta macro ?


"Fricotin Bibi" a écrit dans le message de groupe de discussion :

J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas a
arreter le programme autrement qu'en desactivant l'execution des macros. Y a
t'il un autre moyen ?

merci
Avatar
M41
Bonjour

Pour tester :
Parsemer le programme de : ArrêtProcess 17
17 = touche Ctrl
Tester des CtrlProcess aux points névralgiques, genre

If CtrlProcess Then Stop
Le programme s'arrêtera ensuite à tous ces lignes
jusqu'au prochain ArrêtProcess 17

S'il ne doit y avoir qu'un seul arrêt lors de l'exécution

If CtrlProcess Then Stop : CtrlProcess úlse

Cette méthode est surtout valable pour les macros
dont les temps d'exécution sont très très longs

================================ Public Const Stopper As Variant = 27
Public CtrlProcess As Boolean
'
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As
Integer) As Integer
'
Public Sub ArrêtProcess(ByVal T As Variant)
Dim C As Boolean, V As Boolean
If T = Stopper Then T = 27: C = True
If Not IsNumeric(T) Then Exit Sub
V = TestMaTouche(T)
If V And C Then
CtrlProcess = True
Application.StatusBar = "Stop !"
End
ElseIf V And Not C Then
CtrlProcess = True
Application.StatusBar = "Stop !"
'ajouter un Stop ici ?
Else
CtrlProcess = False
End If
End Sub
'
Sub TestArrêtProcessStopper()
Dim i As Integer: CtrlProcess = False
For i = 1 To 5000: ArrêtProcess 17: Debug.Print i, CtrlProcess: Next i
End Sub
=================================
Autres méthodes, après désactivation des lignes "On Error..."

- Ne pas arrêter mais utiliser les "Debug.?" pour afficher les résultats
intermédiaires
- En cas de boucle For/Next, si l'erreur survient avec certaines valeurs de
i :

For i = A to B
If i = X1 or i = X2 then Stop

Next i
fonctionner en "pas à pas" ensuite

- Ajouter un "Stop" dans "Sub ArrêtProcess" (cf liting)
- Plus simplement : placer de simples "Stop" dans les macros et tester les
valeurs des variables en promenant le curseur sur le linsting tout en
progressant en "pas à pas".

Cordialement

M41



"Fricotin Bibi" a écrit dans le message de news:

J'ai un programme en VBA que je voudrait améliorer mais je n'arrive pas a
arreter le programme autrement qu'en desactivant l'execution des macros. Y
a t'il un autre moyen ?

merci