Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Msgbox personnalisé en 64 bits - aide

thespeedy20

XLDnaute Occasionnel
Bonjour,

J'ai récupéré ce code sur un autre site( Mdf xlpages), j'ai un modifié les api....pour qu'il fonctionne en 64 bits
La personnalisation se passe bien sauf pour les deux boutons, il laisse oui et Non...

Pouvez-me donner un petit coup de main

Merci d'avance

Oli
 

Pièces jointes

  • Bouton.xlsm
    28.4 KB · Affichages: 6
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

La personnalisation se passe bien sauf pour les deux boutons, il laisse oui et Non...

Ce qui semble tout à fait normal si on s'en tient à l'avertissement dispensé à la source
 

Staple1600

XLDnaute Barbatruc
Re

Issu de mes archives anglophones
Testé sur Excel32bits W10 64bits
VB:
Option Explicit
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
 
Private Declare Function SetDlgItemText Lib "user32" _
    Alias "SetDlgItemTextA" _
    (ByVal hDlg As Long, _
     ByVal nIDDlgItem As Long, _
     ByVal lpString As String) As Long
 
Private Declare Function SetWindowsHookEx Lib "user32" _
    Alias "SetWindowsHookExA" _
    (ByVal idHook As Long, _
     ByVal lpfn As Long, _
     ByVal hmod As Long, _
     ByVal dwThreadId As Long) As Long
 
Private Declare Function UnhookWindowsHookEx Lib "user32" _
    (ByVal hHook As Long) As Long
 
Private hHook As Long
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
' Constants
Public Const IDOK = 1
Public Const IDCANCEL = 2
Public Const IDABORT = 3
Public Const IDRETRY = 4
Public Const IDIGNORE = 5
Public Const IDYES = 6
Public Const IDNO = 7
 
Public Sub CustomMsgBox()
    ' Set Hook
    hHook = SetWindowsHookEx(WH_CBT, _
                             AddressOf MsgBoxHookProc, _
                             0, _
                             GetCurrentThreadId)
    ' Run MessageBox
    MsgBox "C'est une boîte de Message", vbYesNo, "API mumuse"
End Sub
 
Private Function MsgBoxHookProc(ByVal lMsg As Long, _
                                ByVal wParam As Long, _
                                ByVal lParam As Long) As Long
    If lMsg = HCBT_ACTIVATE Then
        SetDlgItemText wParam, IDYES, "Umma"
        SetDlgItemText wParam, IDNO, "Gumma ;-)"
        ' Release the Hook
        UnhookWindowsHookEx hHook
    End If
    MsgBoxHookProc = False
End Function
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…