Annuler les changements d'une feuille excel

tito23 Messages postés 318 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai un problème avec ma feuille excel 2007, lorsque je voudrais annuler une modification, la combinaison clt +z ne fonctionne pas.
J'ai essayé d'jouter un bouton et une méthode qui se déclencheà l'événement click
Private Sub annuler_Click() 
Application.EnableEvents = False 
Application.undo 
Application.EnableEvents = True 
ActiveWorkbook.Save 
End Sub 

Mais lors de l'exécution, l'erreur "La méthode 'Undo' de l'objet _Application a échoué "
Merci d'avance.

Edit, j'ai une autre méthode
Private Sub Worksheet_Change(ByVal Target As Range)
qui se déclenche lors de la modification d'une cellule qui modifie, elle même des cellules mais j'ai désactiver les évènements avant chaque modification



Merci de changer le problème en résolu quand vous trouvez une solution
A voir également:

3 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Voir l'aide...
Cette méthode annule la dernière opération commandée à partir de l'interface utilisateur

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.

A+
0
tito23 Messages postés 318 Statut Membre 4
 
Merci pour ton retour, j'ai essayé de mettre
Application.undo 
à la première ligne mais toujours le même problème
La méthode 'Undo' de l'objet _Application a échoué
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
J'ai un peu approfondi la question et il ressort que cette fonction n'est pratiquement pas employable.
Je n'ai pas trouver une seule action qui libère le Undo, la bulle met toujours "annulation impossible"

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
tito23 Messages postés 318 Statut Membre 4
 
je pense que le Undo ne marche pas quand il y a une méthode qui gère l'évènement Worksheet_Change
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Si tu précisais comment a été faite la modification (voir post 1)
Manuellement : ctrl+z doit marcher, par macro : impossible d'annuler.

eric
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
exemple de code avec undo : interdire la saisie d'un nombre >10 en A1 et restaurer l'ancienne valeur :
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = [A1] And [A1] > 10 Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
    End If
End Sub

eric
0
tito23 Messages postés 318 Statut Membre 4
 
En général, la modification est faite par l'utilisateur: manuellement, et malgré ça CLTR + Z ne marche pas, ni la procédure avec
Application.Undo
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Essayer d'y pallier avec .undo n'est pas la solution, il vaut mieux essayer de régler le pb ctrl+z.

Je suppose que 'edition / annuler' est inactif aussi ?
Est-ce systématique ? toutes les cellules de tous les fichiers ?
As-tu des macros qui se lances à l'ouverture ?

Crée-toi un raccourci pour lancer excel avec le commutateur /s et teste (voir ici).

Contrôle dans la base de registre si tu as bien la clé :
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\UndoHistory
et qu'elle a une valeur correcte (maxi: 100)

eric
0
tito23 Messages postés 318 Statut Membre 4
 
Bonjour,
Merci pour la réponse,
1. Edition ne s'affiche pas, comment l'afficher?,
2. Annuler dans la barre d'accès rapide n'est pas actif après modification de la feuille
3. j'ai créé un raccourci avec /s
4. j'ai bien mis la valeur HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options\UndoHistory à 99 est le problème persiste, lorsque je supprime ma procédure Worksheet_Change, cltr + z marche à nouveau
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

1) je parlais du menu dans excel 2003

lorsque je supprime ma procédure Worksheet_Change, cltr + z marche à nouveau

Ben alors il fonctionne !!!
Contrôle ta procédure Change.
Si tu écris dans une cellule en vba ce n'est pas annulable.

eric
0