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

VBA Discussion :

Remplacer CRTL+Z pour créer son propre UNDO


Sujet :

VBA

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut Remplacer CRTL+Z pour créer son propre UNDO
    Salut !

    J'ai créé un menu sous Word dans lequel je peux créer des tables (un peu comme le TABLE -> INSERT -> TABLE de Word mais avec plus d'options).
    Une fois les options spécifiées, c'est une macro VBA qui s'occupe de créer le tableau.
    Mon probleme :
    Lorsque je souhaite annuler cette création de tableau, naturellement j'aurais envi de faire : CTRL+Z sauf qu'ici, ca me supprime simplement la dernier action VBA...

    Comment pourrais-je procéder ?

    Par exemple, j'ai essayé de capturer la commande (avec un enregistrement de macro) : CRTL+Z pour plus tard la remplacer avec du code spécifique. Mais lors d'une capture, la commande UNDO est impossible (grisée)...

    Si j'arrive a capturer le signal CTRL+Z, je pense pouvoir faire quelques chose en hierarchisant les actions avec différents types d'actions (atomique ou non...)

  2. #2
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2007
    Messages : 71
    Points : 76
    Points
    76
    Par défaut
    Le Ctrl Z n'est pas une action spécifique à Word, tu peux l'utiliser dans plein de cas autre que dans word.

    C'est pour ça que l'enregistrement de macro n'a rien envoyé.

    J'ai 2 idées à te proposer

    - la 1ere, utiliser l'api "PeekMessage" à l'aide d'une boucle elle permet d'intercepter les messages envoyé au processeur (si je ne me trompe pas) et donc dans ce cas là, le Ctrl Z
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" ( _
        lpMsg As Msg, _
        ByVal hwnd As Long, _
        ByVal wMsgFilterMin As Long, _
        ByVal wMsgFilterMax As Long, _
        ByVal wRemoveMsg As Long _
    ) As Long
    - 2 eme (surement la plus simple, mais ça fait un peu bidouille), il te suffirai de faire en sorte que les dernieres actions VBA sur le tableau soit :
    une sélection globale du tableau
    copier le tableau
    le supprimer
    et le coller

    comme ça, lorsque tu feras ton ctrl Z.... ça le supprimera

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 73
    Points
    73
    Par défaut
    LOL !
    Effectivement, c'est de la bidouille mais ca doit marcher !
    Cependant, il serait interessant de savoir si la premiere solution marche car elle est plus interessante...
    Je vais regarder..

    Thanks !

Discussions similaires

  1. Créer son propre serveur http pour JWS
    Par romain.barraud dans le forum JWS
    Réponses: 0
    Dernier message: 10/06/2009, 09h45
  2. Script de mise en forme pour créer son propre blog
    Par speed034 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/08/2008, 16h30
  3. Créer son propre motif pour la bordure de page
    Par koKoTis dans le forum Word
    Réponses: 7
    Dernier message: 15/12/2007, 13h34
  4. Créer son propre éditeur pour un descendant de tpopupmenu
    Par sfpx dans le forum Composants VCL
    Réponses: 1
    Dernier message: 04/10/2005, 12h21

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