Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Undo après l'activation d'une macro

  • Initiateur de la discussion Initiateur de la discussion Chrige
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chrige

XLDnaute Occasionnel
Bonjour

Sur Excel la fonction Undo pour un retour à la situation antérieure est très appréciable
Malheureusement, j’ai remarqué que lorsqu’on utilise n’importe quelle macro, cette fonctionnalité est inopérante

Du coup si par mégarde, on active une macro par erreur ou pas sur la bonne cellule, les effets peuvent être vite catastrophiques !

Y a t-il une autre possibilité de revenir à la position antérieure à la frappe d’une macro ?

Merci
 
Re : Fonction Undo après l'activation d'une macro

Bonjour Chrige, bonjour le forum,

Non il n'y a pas de possibilité de retour après macro sinon une autre macro faisant exactement le contraire de celle que tu viens d'exécuter. Faisable parfos si le code n'est pas trop complexe sinon ça devient vite une usine à gaz...
 
Re : Fonction Undo après l'activation d'une macro

Bonjour Chrige, salut Robert,

Tout dépend de ce que l'on veut faire avec Application.Undo.

1) Dans une macro, elle peut, comme la commande "Annuler", annuler la dernière modification.

Sauf après certaines instructions comme Intersect par exemple.

2) Autre cas : le retour à la situation existante avant de lancer la macro.

On peut alors mémoriser cette situation, puis la rétablir en fin de macro :

Code:
Dim ad$, tablo
With Sheets("Feuil1")
  ad = .UsedRange.Address
  tablo = .UsedRange.Formula
  'suite du code
  .UsedRange.ClearContents
  .Range(ad).Formula = tablo
End With
A+
 
Re : Fonction Undo après l'activation d'une macro

Bonjour Robert, Job75

Job,

1) Quel est cette commande qui permet d’annuler la dernière modification ?

2) si je comprends bien, il suffit d’ajouter ces lignes en tête d’une macro, pour mémoriser la situation actuelle afin de pouvoir la rétablir ensuite en cas de problème ?

Mais on rétabli la situation antérieur de quelle façon ?
 
Re : Fonction Undo après l'activation d'une macro

Re,

1) Touche F1 pour l'Aide et rechercher annuler

2) il faudrait comprendre mon code, vraiment très simple :

- il mémorise les données au début de la macro

- et les restitue à la fin de la macro...

A+
 
Re : Fonction Undo après l'activation d'une macro

Bonjour.
Mais j'avoue ma grande honte à n'avoir jamais pris la peine d'écrire de macro permettant, à l'aide de cette méthode, de demander l'annulation de la dernière action, par la voie classique, de l'action d'une de mes macros.

Cela dit on est en droit de se demander pourquoi il n'a pas été prévu un simple empilement des effets engagés par l'invocation des méthodes Excel et de leur action inverse standard, avec possibilité d'Undo groupé en ordre inverse jusqu'à la 1ère action engagée par la procédure.
Probablement une étude dans ce sens a-t-elle montré que dans certains cas une information indispensabe au retour en arrière et non identifiable pouvait être perdue lors du traitement.
Je crois qu'on devrait d'ailleurs s'en convaincre assez aisément en essayant d'écrire des procédures Undo pour toutes ses macros.
Voire déjà rien que par l'aspect rebutant à priori de devoir se les écrire ! Il doit y avoir de vraies usine à gaz derrière les Undo des actions standard d'Excel.
À+
 
Dernière édition:
Re : Fonction Undo après l'activation d'une macro

Bonjour Job75

Je ne parlais bien sûr pas de la fonction « annuler » sur Excel, mais de la fonction similaire dont vous parliez dans votre réponse.

« Dans une macro, elle peut, comme la commande "Annuler", annuler la dernière modification. »

C’est donc de cette fameuse fonction similaire à <<comme la commande "Annuler">> que j’attendais des éclaircissements.

Au sujet du code, j’ai bien essayé de l’intégrer à une macro toute simple, mais je ne vois aucune différence lorsque l’on active cette macro sans ce code ou avec ce code.

Il est vrai que je n’ai surement pas les connaissances pour comprendre ce code tout simple.

Mais sincèrement, si j’avais ces connaissances, je n’aurais probablement pas non plus lancer cette demande d’aide, non !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…