Annuler les changements d'une feuille excel

Fermé
tito23 Messages postés 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 - Modifié par tito23 le 6/06/2012 à 11:38
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 7 juin 2012 à 16:28
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 juin 2012 à 11:29
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 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
6 juin 2012 à 11:42
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 6/06/2012 à 12:18
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 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
6 juin 2012 à 12:56
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
6 juin 2012 à 14:20
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
6 juin 2012 à 14:28
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 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
6 juin 2012 à 15:02
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
6 juin 2012 à 16:09
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 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
Modifié par tito23 le 7/06/2012 à 11:05
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
7 juin 2012 à 11:38
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