Annuler l'exécution d'une macro

Bonjour,

Je voulais savoir si il est possible d'annuler l'exécution d'une macro ?

Je m'explique : une fois la macro appliquée, le bouton annuler de la barre d'outils n'est plus actif. Comment annuler les effets de la macro ?

Merci !

Bonjour,

La question n'est pas assez claire. Si c'est pour arrêter un enregistrement d'une macro, il suffit de recliquer sur le même outils qui doit se transformer (bouton rond se transforme en carré) en "Arrêter l'enregistrement". Si c'est pour interrompre l'exécution d'une macro, il faut utiliser la touche "echap".

Bonjour,

Raja bonjour,

As-tu essayer la combinaison de touche : Ctrl + Pause ? C'est la procédure (fournie par le forum...) pour arrêter une macro en cours d'exécution...

A te relire.

Fabrice69,

Escusez moi, je n'ai pas été assez claire.

En fait ce que je voudrais, c'est savoir si, une fois l'exécution de la macro terminée, on peut annuler les effets qu'elle a eue sur la feuille de calcul.

Bonsoir à tous,

Tu veux dire que la macro ne doit s'executer qu'une seule fois, ou suivant certaines

conditions ?

Précise ta question

Claude.

Bonsoir à tous,

Si je comprends, c'est une sorte de "Annuler la dernière commande" que tu veux mais après l'action de ta macro ?

A te relire.

Fabrice,

Bonsoir

En principe lorsque l'on teste une nouvelle macro, il est préférable de sauvegarder le fichier "avant" de lancer la macro.

Si le résultat n'est pas satisfaisant (voire destructeur), il suffit de fermer le fichier sans le sauvegarder.

Cordialement

Si je comprends, c'est une sorte de "Annuler la dernière commande" que tu veux mais après l'action de ta macro ?

Oui, c'est exactement ça ! Désolée pour la confusion...

En principe lorsque l'on teste une nouvelle macro, il est préférable de sauvegarder le fichier "avant" de lancer la macro.

Si le résultat n'est pas satisfaisant (voire destructeur), il suffit de fermer le fichier sans le sauvegarder.

ça veut dire que ce n'est pas possible ??

Bonjour,

çà dépend de ce que fait la macro ,

on peut faire une autre macro qui refasse l'opération inverse, (si c'est possible)

Claude.

D'accord.

Merci pour vos réponses !

Bonsoir à tous, ont pourais tester avec "Application.Undo" ou je dit des bétises...

Bonsoir

Non car Application.Undo ne permettra que d'annuler la dernière action faite par Excel

L'aide est plus explicite

Cette méthode n'annule que la dernière opération commandée par l'utilisateur avant l'exécution de la macro et doit figurer en première ligne dans la macro. Elle ne peut être utilisée pour annuler des commandes Visual Basic.

La question est claire depuis le début, mais personne ne comprend ! J'aimerais aussi savoir la réponse, je cherche encore et je vais revenir si je trouve...

Bon, je n'ai pas trouvé autre chose que de sauvegarder la feuille (ou le classeur!) ou de faire la macro inverse.

1) Pour la sauvegarde de feuille on peut faire en sorte que la macro travaille sur une copie; pour copier une feuille la macro peut utiliser:

Sheets("nom de la feuille à copier").Copy Before:=Sheets(kPosition)
nomCree = Sheets(kPosition).Name

avec kPosition entre 1 et ThisWorkbook.Worksheets.Count + 1 La nouvelle feuille est automatiquement activée et ça va si vite qu'on s'aperçoit même pas qu'on est sur une autre feuille. Pour "revenir" avant la macro on n'a qu'à supprimer la nouvelle feuille, par exemple avec:

Function deleteFeuille(ByVal f As Worksheet) As Worksheet
    ' Retourne Nothing si Feuille suprimée, ou la Feuille sinon
    Application.DisplayAlerts = False
    On Error GoTo continue
    f.Delete: Set f = Nothing
continue:
    Set deleteFeuille = f: On Error GoTo 0
    Application.DisplayAlerts = True
End Function

2) La macro inverse pour moi c'était facile, car je voulais signaler certaines cellules avec une couleur, et revenir ensuite aux couleurs initiaux. La première macro mémorise les coordonnées (i, j) des cellules signalées et leur Interior.Color dans un array déclaré en dehors des macros (dans la partie globale) avec

Dim a(1 To 10, 1 To 3), kk1 As Integer

(kk1 <= 10). Ainsi la macro inverse sera remettre les couleurs initiaux.

Pour faire sympa, on peut attacher la macro inverse à un bouton perso mis dans la barre d'outils. Pour faire ça voir ici https://forum.excel-pratique.com/viewtopic.php?t=39061.

Rechercher des sujets similaires à "annuler execution macro"