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 :

VBA EXCEL Macros Éclairer certaines touches du clavier de couleurs différentes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Avatar de clubleo
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Mars 2016
    Messages : 63
    Billets dans le blog
    1
    Par défaut VBA EXCEL Macros Éclairer certaines touches du clavier de couleurs différentes
    Bonjour,

    Environnement :
    Je possède un Ordinateur MSI avec un clavier à touches dont l’éclairage peut posséder des couleurs variables.

    Question :
    - Sous Excel VBA lors de la sélection d’une cellule, en fonction des zones, à la réception de target.(row,column), je désire éclairer certaines touches à des couleurs différentes.

    Exemples :
    - Cadenas CAPS-ON en rouge CAPS-Off en vert
    - Touches 0-9 en vert si verrouillage numérique

    Merci à celui qui pourra me guider vers une solution peut-être déjà approchée.

    D.R.

  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,

    si tu nous trouves l'API de MSI qui permettrait cela, on peut potentiellement essayer d'aider.

    Mais vu de mon balcon, c'est peu probable qu'on ait ca en stock parmi nos utilisateurs
    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 averti
    Avatar de clubleo
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Mars 2016
    Messages : 63
    Billets dans le blog
    1
    Par défaut
    Bj,

    Merci d'être présent à ma question.

    Je viens de trouver dans internet ce qui suit. Cela semble bien être proche de mon sujet.

    Pour ma part, je n'arrive pas à en tirer qque chose.

    A suivre ?


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Option Explicit
     
    ' Déclaration des fonctions de la bibliothèque Windows API
    Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
     
    Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
        (ByVal hWndParent As LongPtr, ByVal hWndChildAfter As LongPtr, ByVal lpszClass As String, ByVal lpszWindow As String) As LongPtr
     
    ' Constantes pour les messages Windows API
    Private Const WM_APPCOMMAND As Long = &H319
    Private Const FAPPCOMMAND_KEYDOWN As Long = &H1000
    Private Const FAPPCOMMAND_KEYUP As Long = &H2000
    Private Const VK_VOLUME_UP As Long = &HAF
    Private Const VK_VOLUME_DOWN As Long = &HAE
     
    Sub AllumerToucheCouleur(ByVal Couleur As Long)
        ' Trouver la fenêtre du clavier
        Dim hWnd As LongPtr
        hWnd = FindWindowEx(0, 0, "IPTip_Main_Window", vbNullString)
     
        ' Envoyer un message pour allumer une touche de couleur
        SendMessage hWnd, WM_APPCOMMAND, 0, FAPPCOMMAND_KEYDOWN And Couleur
    End Sub
     
    Sub EteindreTouche()
        ' Trouver la fenêtre du clavier
        Dim hWnd As LongPtr
        hWnd = FindWindowEx(0, 0, "IPTip_Main_Window", vbNullString)
     
        ' Envoyer un message pour éteindre la touche
        SendMessage hWnd, WM_APPCOMMAND, 0, FAPPCOMMAND_KEYUP
    End Sub
     
    Sub TesterAllumerToucheCouleur()
        ' Allumer une touche de couleur (par exemple, rouge)
        AllumerToucheCouleur &HFF0000  ' Rouge
    End Sub
     
    Sub TesterEteindreTouche()
        ' Éteindre la touche
        EteindreTouche
    End Sub

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 532
    Par défaut
    Salut,

    Le truc est que sans posséder le même PC que toi, ça va être difficile de t'aider.
    De plus, utiliser les API c'est bien, encore faut-il savoir ce qu'elles font.
    Pour cela il y a la documentation: https://learn.microsoft.com/en-us/wi...-findwindowexa

    Le code que tu proposes s'appuie sur le système de messages de windows permettant aux fenêtres de communiquer entre elles, et ne fonctionne qu'a une seule condition:
    Que la fenêtre nommée IPTip_Main_Window existe, faute de quoi, le message n'est pas envoyé.
    Donc, la première chose à faire est de vérifier la valeur retournée par FindWindowEx

  5. #5
    Membre averti
    Avatar de clubleo
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Mars 2016
    Messages : 63
    Billets dans le blog
    1
    Par défaut
    Salut,

    Grace à Ami calmant , J.P Jurassic pork , j'avais réussi à créer un module pour télécharger des fichiers AMELI Sécurité Sociale

    Il comprenait des sendkeys, chrome, webdriver et entre autres les instructions qui suivent.
    Depuis il m'a guidé pour utiliser par les modules de classe CDP à la place de Webdriver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
                                              (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
                                               ByVal lpsz1 As String, ByVal lpsz2 As String) As Long  ' ***
    Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long               ' ***
    Je reconnais qu'ici, je ne sais pas par où commencer pour tester les instructions FindWindow.

    A+ D.R.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 532
    Par défaut
    As-tu consulté la documentation ?
    Return value
    Type: HWND

    If the function succeeds, the return value is a handle to the window that has the specified class and window names.

    If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Discussions similaires

  1. [VBA-Excel] Macro Création Case à cocher
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 21/07/2006, 10h18
  2. [VBA-Excel] Macro de mise à jour de Report
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 13/07/2006, 11h23
  3. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  4. désactiver certaines touches du clavier...
    Par youp_db dans le forum C
    Réponses: 4
    Dernier message: 23/01/2006, 15h21
  5. [VBA] Excel + macro + aléatoire
    Par spopo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2006, 15h42

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