Non fonctionnement d'InputBoxCombo
Bonjour,
J’ai installé il y a plusieurs années INPUT BOX ETENDUE V0.4 de Thierry Gasperment
J’ai utilisé InputBoxCombo sans difficulté jusqu’à ces derniers jours.
'*******************************************************************************
'* INPUT BOX ETENDUE V0.4 *
'* ---------------------------------------------------------------------------- *
'* InputBoxCombo : Zone de liste déroulante *
'* InputBoxDate : Calendrier *
'* InputBoxDateTime : Date Time Picker (Calendrier + Heure) *
'* InputBoxListView : Zone de liste *
'* InputBoxEx : Saisie texte classique *
*********************************************************************************
' Auteur : Thierry GASPERMENT (Arkham46)
' Le code est libre pour toute utilisation
' Le code est indenté avec Smart Indenter (http://www.oaltd.co.uk)
'*********************************************************************************
Depuis quelques jours, InputComboBox tourne en rond. Pouvez-vous m’aider ?
En faisant du pas à pas, j’avance bien sur les instructions suivantes :
Public Function InputBoxCombo(ByVal Prompt As String, Items As Variant, Optional ByVal Title As String, Optional ByVal Default As String, Optional ByVal XPos As Single = -1, Optional ByVal YPos As Single = -1, Optional ByVal HelpFile As String, Optional ByVal Context As Long, Optional ListHeight As Long = 0, Optional ByVal ForeColor As Long = -1, Optional ByVal BackColor As Long = -1, Optional ByVal CaptionFontName As String, Optional ByVal CaptionFontSize As Long, Optional ByVal EditFontName As String, Optional ByVal EditFontSize As Long, Optional DisplayImg As Boolean, Optional pTimer As Integer) As String
…..
' Construction d'un tableau avec le premier champ de la requête
#End If
End If
' Classe du contrôle
IB_Class = WC_COMBOBOXEX ‘ résultat :IB_Class = ComboBoxEx32
' Taille verticale de la liste en pixels
IB_ListHeight = ListHeight
' Surveille tous les messages de l'application en attente d'ouverture de la boîte de dialogue
#If VBA6 Then
IB_AppOldProc = SetWindowsHookEx(WH_CALLWNDPROC, AddressOf AppProc, GetWindowLong(GetForegroundWindow, GWL_HINSTANCE), GetCurrentThreadId()) ‘ résultat : IB_AppOldProc = 65734453
#Else
IB_AppOldProc = SetWindowsHookEx(WH_CALLWNDPROC, AddrOf("AppProc"), GetWindowLong(GetForegroundWindow, GWL_HINSTANCE), GetCurrentThreadId())
#End If
' Appel la boîte de dialogue InputBox standard
InputBoxCombo = InputBox(Prompt, Title, IB_Default, XPos, YPos, HelpFile, Context)
Et l’instruction suivante dure plusieurs minutes sans message d’erreur, et arrête même l’Excel
Private Function AppProc(ByVal nCode As Long, ByVal wParam, ByVal lParam (lparam = 57605256))
Je suis sous windows 11 famille
Microsoft® Excel® pour Microsoft 365 MSO (Version 2301 Build 16.0.16026.20002) 32 bits
Version VBA 7.1.1128
Non fonctionnement d'inputBoxCombo-Suite 01
Bonjour Bruno,
Tout d'abord, merci d'avoir regardé ma demande.
Dans le fichier "https://arkham46.developpez.com/arti...xplus/doc/#LIX" il y a bien un InputBoxCombo.
J'ai téléchargé le fichier; c'est exactement le code que j'utilisai dans mon Excel.
J'ai refait un test avec ce code, et j'obtiens les mêmes résultats : la macro est très longue à s'exécuter (1 à 2 minutes) depuis quelques jours, alors qu'il y a 2 semaines, l'apparition de la liste déroulante se faisait en 1 seconde.
Ma liste déroulante à 13 lignes.
Je ne sais pas que corriger ?
Puis-je vous envoyer mon excel, pour que vous le testiez ?
Si oui, je vous l'enverrai.
Cordialement
Bertrand Meunier
Non fonctionnement d'inputBoxCombo-Suite 02
J'ai testé ma macro sur un autre ordinateur. La macro fonctionne parfaitement, avec des temps de réponse excellents.
C'est donc un problème du premier ordinateur, et non d'InputBoxCombo.
Il faut que je recherche les causes du ralentissement d'Excel.
Je clos donc cette discussion.