Les macros Excel ne semblent pas autoriser l'utilisation de "Annuler" après leur exécution. Y a-t-il un moyen de créer une fonctionnalité undo
dans une macro VBA dans Excel?La fonction Annuler dans une macro VBA Excel
Répondre
Excel VBA a la fonction Application.OnUndo
pour gérer ceci:
Public Sub DoSomething
... do stuff here
Application.OnUndo "Undo something", "UnDoSomething"
End Sub
Public Sub UnDoSomething
... reverse the action here
End Sub
Je sauvegarde toujours immédiatement avant d'exécuter mes macros (pendant au moins les tests) puis, si tout devient piriforme, je peux simplement quitter sans sauvegarder et ré-ouvrir. En l'incorporant dans la macro actuelle, vous devez enregistrer l'ancien état de tout ce qui change (contenu de la cellule, formules, formatage, etc.) dans une liste, puis avoir une macro d'annulation qui lit cette liste dans ordre inverse.
Par exemple, si votre macro change une cellule de contenu C22 de « 3 » à « 7 » et le formatage du numéro « général » à », 2 décimales), votre liste serait:
C22 value 3
C22 format general
Jouer à ce dans l'ordre inverse (avec une autre macro) serait annuler les modifications
Vous pourriez avoir une fiche complète supplémentaire pour maintenir la macro des informations d'annulation telles que:.
Step Cell Type Value
---- ---- ----- -------
1 C22 value 3
C22 format general
2...
Il ne serait pas intégrer très bien avec le 'vrai' défaire malheureusement, mais je ne pense pas qu'il y ait moyen de contourner cela.
Ma pensée est assez simple, comme la première ligne de votre macro enregistrer une copie dans un répertoire de sauvegarde puis fermez ce classeur et rouvrez l'original. Si vous n'aimez pas les résultats de votre macro, ouvrez le classeur enregistré. Reste simple hein?
- 1. Excel VBA Macro
- 2. Où annuler Application.OnTime dans VBA
- 3. Programmation VBA dans Excel
- 4. Excel VBA - Réinitialiser une plage
- 5. Excel 2007 Enregistrer une macro
- 6. CopyOrigin on Insert dans Excel VBA
- 7. getHTTP avec (excel) VBA?
- 8. Macro Excel VBA pour suivre les modifications dans une feuille séparée
- 9. Puis-je réécrire une fonction Javascript en utilisant Excel VBA?
- 10. Utilisation des constantes de tableau dans Excel fonction vba
- 11. Surcharge de fonction et UDF dans Excel VBA
- 12. Comment imprimer plus rapidement dans Excel VBA?
- 13. Que signifie la macro?
- 14. Signature numérique pour Macro Excel
- 15. Passant fonction multi-param dans une macro
- 16. Ouverture/activation de documents Word dans une macro VBA
- 17. VBA comment vérifier l'environnement LAN et Annuler la vérification
- 18. Excel avec Macro
- 19. Erreur 70 dans Excel VBA
- 20. Problème Création du complément Excel à partir de la macro
- 21. Utilisation de VBA/Macro pour mettre en surbrillance les changements dans Excel
- 22. Comment obtenir une valeur DateDiff en millisecondes dans VBA (Excel)?
- 23. Excel VBA Macro: Vérifier le contenu (du presse-papiers?) Avant de coller
- 24. VB.NET équivalent d'argument optionnel Range dans la fonction VBA
- 25. Fonction de hachage par mot de passe pour Excel VBA
- 26. calculs Excel et VBA
- 27. VBA dans Excel: fichier de constantes globales
- 28. Lier la macro pour exceler la cellule onclick?
- 29. VBScript pour écrire une macro dans un fichier Excel
- 30. Excel Macro envoyer un courriel
Bien que cela puisse aider à annuler les actions du premier sous-marin, vous perdez malheureusement toujours l '"historique" des actions d'annulation qui ont pu être disponibles avant d'exécuter le sous-marin. Si quelqu'un sait comment résoudre ce problème, ce serait un véritable avantage. –
@ExcelDevelopers vous voulez dire comme [ici] (http://www.jkp-ads.com/Articles/UndoWithVBA00.asp) – Reafidy