J'ai plusieurs boucles "for" imbriqué les unes derrières les autres :
For a = 1 To 1 + Nb_iteration_A * 5
For b = 1 To 1 + Nb_iteration_B * 5
For c = 1 To 1 + Nb_iteration_C * 5
For d = 1 To 1 + Nb_iteration_D * 5 etc...
somme = Cells(4, a + 2).Value * Nb_iteration_A +
Cells(4, b + 2).Value * Nb_iteration_B + Cells(4, c + 2).Value *
Nb_iteration_C + Cells(4, d + 2).Value * Nb_iteration_D etc....
Cela peut donc faire des calculs long, trés long.... J'aimerais mettre fin à
ces calculs à n'importe quel moment (quand j'en ai marre d'attendre) en
appuyant sur "ESCAPE" ou "F1" ou sur n'imprte quoi, une touche, un bouton, le
bouton RESET de ma tour....
J'ai essayer ça :
1) -> Application.OnKey "{F1}", "Arret"
mais le saut à la procédure "Arret" ne se fait qu'aprés tous les calculs
effectués.
Et ça :
2) -> On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
handleCancel:
If Err = 18 Then
a = b = c = d = e = f = g = 6
MsgBox "erreur 18"
Exit Sub
End If
Mais le problème reste le même, l'erreur n'est prise en compte qu'a la
sortie des boucles for, une fois tous les calculs faits !!!
Alors, je sèche, je n'ai plus d'idée ?!
Quelqun à déjà eu ce genre de problème ?
J'attends votre aide !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Fredin
Bonjour,
Normalement quand tu appuies sur "Echap" ou "Ctrl+Break", la macro s'arrête.
-- Patrick
"Podgers_95" wrote in message news:
Voilà mon problème :
J'ai plusieurs boucles "for" imbriqué les unes derrières les autres :
For a = 1 To 1 + Nb_iteration_A * 5 For b = 1 To 1 + Nb_iteration_B * 5 For c = 1 To 1 + Nb_iteration_C * 5 For d = 1 To 1 + Nb_iteration_D * 5 etc...
somme = Cells(4, a + 2).Value * Nb_iteration_A + Cells(4, b + 2).Value * Nb_iteration_B + Cells(4, c + 2).Value * Nb_iteration_C + Cells(4, d + 2).Value * Nb_iteration_D etc....
Cela peut donc faire des calculs long, trés long.... J'aimerais mettre fin à ces calculs à n'importe quel moment (quand j'en ai marre d'attendre) en appuyant sur "ESCAPE" ou "F1" ou sur n'imprte quoi, une touche, un bouton, le bouton RESET de ma tour....
J'ai essayer ça : 1) -> Application.OnKey "{F1}", "Arret" mais le saut à la procédure "Arret" ne se fait qu'aprés tous les calculs effectués.
Et ça : 2) -> On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler
handleCancel: If Err = 18 Then a = b = c = d = e = f = g = 6 MsgBox "erreur 18" Exit Sub End If
Mais le problème reste le même, l'erreur n'est prise en compte qu'a la sortie des boucles for, une fois tous les calculs faits !!!
Alors, je sèche, je n'ai plus d'idée ?! Quelqun à déjà eu ce genre de problème ? J'attends votre aide !!!
MERCI ;-)
Bonjour,
Normalement quand tu appuies sur "Echap" ou "Ctrl+Break", la macro s'arrête.
--
Patrick
"Podgers_95" <Podgers_95@discussions.microsoft.com> wrote in message
news:B9824AC2-69B0-4D37-A95B-BD4A6E95149E@microsoft.com...
Voilà mon problème :
J'ai plusieurs boucles "for" imbriqué les unes derrières les autres :
For a = 1 To 1 + Nb_iteration_A * 5
For b = 1 To 1 + Nb_iteration_B * 5
For c = 1 To 1 + Nb_iteration_C * 5
For d = 1 To 1 + Nb_iteration_D * 5 etc...
somme = Cells(4, a + 2).Value * Nb_iteration_A +
Cells(4, b + 2).Value * Nb_iteration_B + Cells(4, c + 2).Value *
Nb_iteration_C + Cells(4, d + 2).Value * Nb_iteration_D etc....
Cela peut donc faire des calculs long, trés long.... J'aimerais mettre fin
à
ces calculs à n'importe quel moment (quand j'en ai marre d'attendre) en
appuyant sur "ESCAPE" ou "F1" ou sur n'imprte quoi, une touche, un bouton,
le
bouton RESET de ma tour....
J'ai essayer ça :
1) -> Application.OnKey "{F1}", "Arret"
mais le saut à la procédure "Arret" ne se fait qu'aprés tous les calculs
effectués.
Et ça :
2) -> On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
handleCancel:
If Err = 18 Then
a = b = c = d = e = f = g = 6
MsgBox "erreur 18"
Exit Sub
End If
Mais le problème reste le même, l'erreur n'est prise en compte qu'a la
sortie des boucles for, une fois tous les calculs faits !!!
Alors, je sèche, je n'ai plus d'idée ?!
Quelqun à déjà eu ce genre de problème ?
J'attends votre aide !!!
Normalement quand tu appuies sur "Echap" ou "Ctrl+Break", la macro s'arrête.
-- Patrick
"Podgers_95" wrote in message news:
Voilà mon problème :
J'ai plusieurs boucles "for" imbriqué les unes derrières les autres :
For a = 1 To 1 + Nb_iteration_A * 5 For b = 1 To 1 + Nb_iteration_B * 5 For c = 1 To 1 + Nb_iteration_C * 5 For d = 1 To 1 + Nb_iteration_D * 5 etc...
somme = Cells(4, a + 2).Value * Nb_iteration_A + Cells(4, b + 2).Value * Nb_iteration_B + Cells(4, c + 2).Value * Nb_iteration_C + Cells(4, d + 2).Value * Nb_iteration_D etc....
Cela peut donc faire des calculs long, trés long.... J'aimerais mettre fin à ces calculs à n'importe quel moment (quand j'en ai marre d'attendre) en appuyant sur "ESCAPE" ou "F1" ou sur n'imprte quoi, une touche, un bouton, le bouton RESET de ma tour....
J'ai essayer ça : 1) -> Application.OnKey "{F1}", "Arret" mais le saut à la procédure "Arret" ne se fait qu'aprés tous les calculs effectués.
Et ça : 2) -> On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler
handleCancel: If Err = 18 Then a = b = c = d = e = f = g = 6 MsgBox "erreur 18" Exit Sub End If
Mais le problème reste le même, l'erreur n'est prise en compte qu'a la sortie des boucles for, une fois tous les calculs faits !!!
Alors, je sèche, je n'ai plus d'idée ?! Quelqun à déjà eu ce genre de problème ? J'attends votre aide !!!
MERCI ;-)
Clément Marcotte
Bonjour,
a = b = c = d = e = f = g = 6
Si, avec cela, tu veux avoir 7 variables égales à 6, cela ne fonctionnera pas. Quand VBA (et même VB) rencontre ce genre d'instruction, il fait un test logique, et il retourne True ou False, et non une affectation multiple.
Dans ce cas précis, VBA teste si toutes les variables sont toutes égales à 6.
Bonjour,
a = b = c = d = e = f = g = 6
Si, avec cela, tu veux avoir 7 variables égales à 6, cela ne
fonctionnera pas. Quand VBA (et même VB) rencontre ce genre
d'instruction, il fait un test logique, et il retourne True ou False,
et non une affectation multiple.
Dans ce cas précis, VBA teste si toutes les variables sont toutes
égales à 6.
Si, avec cela, tu veux avoir 7 variables égales à 6, cela ne fonctionnera pas. Quand VBA (et même VB) rencontre ce genre d'instruction, il fait un test logique, et il retourne True ou False, et non une affectation multiple.
Dans ce cas précis, VBA teste si toutes les variables sont toutes égales à 6.