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 :

Pourquoi ce code Application.Onkey ne fonctionne pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Par défaut Pourquoi ce code Application.Onkey ne fonctionne pas
    Bonjour à tous,

    Ce code qui me semble simple ne fonctionne pas. Le souhait est de fusionner les cellules sélectionnées à l'appui de Ctrl et w. Suivant les docs trouvées, rien d'à priori compliqué.
    Pour ceux qui me proposeraient d'autres solutions, je précise que ça m'intéresse de savoir pourquoi ce code précis ne marche pas. Quelque soit la pertinence de son utilisation.
    Merci

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Sub fu()
     
    Application.OnKey "^{w}", "fusion"
     
    End Sub
     
    Sub fusion()
    '
    ' fusion Macro
    '
     
    '
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    ne confonds-tu pas avec SendKeys ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre actif
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Par défaut
    Bonjour,

    Je ne pense pas. Le but du jeu est d'éviter d'avoir à obligatoirement utiliser les combinaisons de touche Ctrl quelque chose proposées en standard par Excel pour l'exécution d'une macro.
    De ce que j'en ai vu, la solution est l'utilisation de Application.Onkey avec deux paramètres:
    La touche ou la combinaison de touche que tu utilises comme premier paramètre
    La procédure que tu appelles lorsque cette touche ou combinaison de touche est jouée

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pardon, j'etais sur l'envoi de touche, et non la creation d'un raccourci

    alors j'ai fait des essais de mon cote.

    L'attribution du raccourci est bonne et le declenchement du raccourci se lance bien. Aucun soucis non plus dans la fusion, mais peut etre que prendre en consideration l'existence et taille de la selection sont bien.

    As-tu bien un Application.EnableEvents = True par exemple ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    je précise que ça m'intéresse de savoir pourquoi ce code précis ne marche pas
    ne nous dit pas comment ce code "ne marche pas".
    - Aucun effet ?
    - Un message d'erreur ?
    - Autre, et quoi ?
    Nous ne savons par ailleurs pas où (dans quoi) tu a mis chacun de ces deux codes, ni comment et à quel moment tu "lances" la sub fu

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    premièrement, quel est le comportement actuel ? Car le raccourci Ctrl+w sert à la base à fermer le classeur actif

    ensuite, pourquoi ne pas utiliser l'interface Excel ?

    Menu Développeur >> Macro >> sélectionner la macro souhaitée >> cliquer sur Option >> la boite de dialogue de propose d'ajouter un raccourci en Ctrl + ToucheDeTonChoix

  7. #7
    Membre actif
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Par défaut
    Bonjour Jean-Philippe,

    J'avais essayé avec un enable;events = true mais ça ne fonctionnait pas bien mieux.

    à unparia, je préfère ne pas répondre, je vais me montrer désagréable, ou plutôt si, ce ne sera pas la première fois que je me fais mal voir sur ce forum. Donc, réponse typique du forumiste français, sous-entendu, j'ai pas de réponses mais je te fais valoir que je trouve ta question con.
    Commentaire de ma part, évidemment fu est censé se lancer sur une combinaison de touche, ce qu'est censé permettre Application.Onkey(). Quand on n'a rien à dire ... D'où ma dilection naturelle pour les forums anglais. Réponse attendue -> ben vas y. Réponse, c'est fait.
    PS - Mon code je l'ai mis ou tu penses, je suis sur que tu penses dans la zone développeur à l'endroit ad hoc.
    Re PS - J'aime pas les forumistes condescendants, je pense que tu auras compris.

    à Joel, jai précisé que c'est justement pour éviter d'avoir à utiliser le Ctrl obligatoire de l'option classique. Sinon je m'en servirais, ce que je fais pour le moment mais j'aimerais trouver d'autres solutions. C'est une question de "rapidité", par exemple un Alt x va plus vite qu'un Ctrl+Shift+q. Le code dont je me servirais utilisera plus volontiers Alt que Ctrl mais jai essayé ce code avec % et + qui sont censés être les raccourcis de Maj et Alt ou l'inverse, ça ne fonctionne pas mieux.
    Je pense que mon erreur doit être triviale mais je ne la vois pas.

    Mon code n'est là qu'à titre d'exemple, je l'ai essayé avec o, p et bien d'autres lettres avant de poster, ça ne fonctionne pas mieux.

Discussions similaires

  1. capture d'événement OnKey ne fonctionne pas
    Par sub_zero dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/11/2007, 16h30
  2. Réponses: 11
    Dernier message: 02/10/2007, 11h11
  3. Code php qui ne fonctionne pas
    Par bachir008 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2007, 10h17
  4. mes applications consoles ne fonctionnent pas
    Par mok16 dans le forum C++Builder
    Réponses: 1
    Dernier message: 10/01/2007, 14h22
  5. Réponses: 6
    Dernier message: 23/12/2006, 12h46

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