IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Annuler une action consécutive à une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Par défaut Annuler une action consécutive à une macro
    Bonjour,

    J'ai un bouton (donc une macro) qui me permet de supprimer des lignes.
    Le problème est qu'en cas d'erreur, "édition/annuler" n'a aucun effet.
    Est-il possible d'annuler une action consécutive à une macro ?

    Merci,

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Il faut refaire la macro inverse : c'est-à-dire insérer des lignes là où elles ont été supprimées.

    Attention, si les cellules de la ligne contiennent des valeurs ou des formules, penses à les stocker dans un tableau de variable avant suppression de la ligne pour pouvoir remettre les valeurs lors de l'insertion de ligne.


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Par défaut
    OUlala,

    ça m'a l'air très complexe, y'a pas plus simple SVP ?

    Merci

  4. #4
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Non.

    Les actions effectuées par macros ne peuvent pas être annulées via le bouton annuler ou la commande du menu édition.

    Pour des cours sur le VBA en général, regarde les tutoriels d'Olivier Lebeau :
    http://heureuxoli.developpez.com/
    Sur le VBA Excel :
    http://excel.developpez.com/cours/

    Ensuite, reviens ici pour poser des questions sur ce problème d'annulation de macro.


  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Djey51 Voir le message
    OUlala,
    ça m'a l'air très complexe, y'a pas plus simple SVP ?
    Non, si c'est dans un userform, ce n'est pas si compliqué :
    Dans l'userform, deux boutons, l'un pour supprimer une ligne, l'autre pour la restaurer. Un textbox pour saisir le N° de ligne à supprimer.
    Tant que tu ne sors pas de l'userform (en gros...) tu peux restaurer la dernière ligne supprimée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim Ligne As Variant, NoLig As Long, DerCol As Variant
     
    Sub SupprimerLigne_Click()
        If TextBoxLigne = "" Then Exit Sub
        NoLig = TextBoxLigne.Value
        DerCol = Split(Worksheets("feuil1").UsedRange.Address, "$")(3)
        Ligne = Range("A" & NoLig & ":" & DerCol & NoLig).Value
        Rows(NoLig).Delete
        Ligne = Range("A" & NoLig & ":" & DerCol & NoLig).Value
    End Sub
     
    Sub Restaurer_Click()
        If NoLig = 0 Then Exit Sub
        Rows(NoLig).Insert Shift:=xlDown
        Range("A" & NoLig & ":" & DerCol & NoLig) = Ligne
        NoLig = 0: DerCol = "": TextBoxLigne = ""
    End Sub
    Pour plusieurs ligne ça devient plus compliqué.
    Si ça peut t'aider... Sinon tant pis
    Bonne soirée

Discussions similaires

  1. Exécuter une action dans une action
    Par mattheox dans le forum Struts 1
    Réponses: 1
    Dernier message: 17/07/2008, 15h44
  2. Détecter une action d'une classe dans une autre classe
    Par Pirokkk dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 12/05/2008, 12h14
  3. Réponses: 1
    Dernier message: 19/02/2007, 16h58
  4. Appeler une action dans une action
    Par japz dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/01/2007, 08h48
  5. [Struts] Appel d'une action dans une action
    Par cosmos38240 dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/02/2006, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo