Message-ID: <382E8B25.1F3323E3@wanadoo.fr> Date: Sun, 14 Nov 1999 11:12:53 +0100 From: Laurent longre X-Mailer: Mozilla 4.7 [fr] (Win95; I) X-Accept-Language: fr MIME-Version: 1.0 Subject: Re: palette de couleur References: <382DC1C4.29D140C3@wanadoo.fr> Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Newsgroups: microsoft.public.fr.excel NNTP-Posting-Host: lyon1-53-141.dial.proxad.net 212.27.53.141 Path: cppssbbsa01.microsoft.com!cppssbbsa05 Lines: 37 Xref: cppssbbsa01.microsoft.com microsoft.public.fr.excel:17545 Gilles Le Bret a écrit : > > Une question complémentaire : y-a-t'il une possibilté pour afficher > directement le volet 'définir les couleurs personalisés' autrement qu'avec > la combine de lancer un timer à qq 10ms qui envoie ensuite la séquence de > touches {alt D } à cette boite de dialogue tout à fait. Voici une nouvelle version qui affiche d'emblé la totalité de la boîte de dialogue et l'attache également à la fenêtre Excel comme boîte modale. Si tu préfères une boîte de dialogue non modale, supprime la déclaration de la fonction findWindowA ainsi que la ligne .hwndOwner = findWindowA(0&, application.Caption) '============================== type udtCColor lStructSize As long hwndOwner As long hInstance As long rgbResult As long lpCustColors As String Flags As long lCustData As long lpfnHook As long lpTemplatename As long end type declare function findWindowA Lib "User32" _ (ByVal lpClassname As Any, ByVal lpWindowname As String) As long declare function ChooseColorA Lib "Comdlg32" _ (lpChooseColor As udtCColor) As long Sub Test() dim CColor As udtCColor dim CustColors As String * 16 with CColor .lStructSize = 36 .lpCustColors = CustColors end with if ChooseColorA(CColor) = 0 then Exit Sub msgbox "Code RGB de la couleur choisie : " & _ CColor.rgbResult end Sub Sub Test2() dim CColor As udtCColor dim CustColors As String * 16 with CColor .lStructSize = 36 .hwndOwner = findWindowA(0&, application.Caption) .lpCustColors = CustColors .Flags = 2 end with if ChooseColorA(CColor) = 0 then Exit Sub msgbox "Code RGB de la couleur choisie : " & CColor.rgbResult end Sub Laurent