Delete / Löschen

Comment arreter une macro dans Excel 2007

"Fricotin Bibi"
25.04.2010 - 21:02
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


"Patrick BASTARD"
25.04.2010 - 21:11

"Fricotin Bibi" <email@anonym; a écrit dans le message de
news:CFC93CD8-1A02-4A84-8904-268D244ADemail@anonym...
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 BAST@RD


"Patrick BASTARD"
25.04.2010 - 21:15
Bonsoir,"Fricotin Bibi" <email@anonym;


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 email@anonym,

Patrick BAST@RD
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



Armel
26.04.2010 - 19:37
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


"michdenis"
26.04.2010 - 21:48
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" <email@anonym; a écrit dans le message de groupe de discussion :
CFC93CD8-1A02-4A84-8904-268D244ADemail@anonym...
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


"M41"
27.04.2010 - 20:34
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 alse

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" <email@anonym; a écrit dans le message de news:
CFC93CD8-1A02-4A84-8904-268D244ADemail@anonym...
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






Share/Bookmark