Bonjour,
Lors d'un export de données d'Access2003 vers Excel2003 (merci Caféine), j'ai besoin de colorer les cellules Excel en fonction d'une valeur présente dans une table Access.
Sous Access, la valeur de la couleur est stockée dans une table et est sous la forme "16744703". Cette couleur est sélectionnée par le biais d'une fenêtre système :
Mon problème est que sous Excel la couleur rendue est rarement celle choisie à l'origine dans Access.
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 Private Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias _ "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long Private Type CHOOSECOLOR 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 String End Type Public Function ShowColor(Handle As Long) As Long Dim cc As CHOOSECOLOR Dim Custcolor(16) As Long Dim lReturn As Long 'set the structure size cc.lStructSize = Len(cc) 'Set the owner cc.hwndOwner = Handle 'set the custom colors (converted to Unicode) cc.lpCustColors = StrConv(CustomColors, vbUnicode) 'no extra flags cc.flags = 0 'Show the 'Select Color'-dialog If CHOOSECOLOR(cc) <> 0 Then ShowColor = cc.rgbResult CustomColors = StrConv(cc.lpCustColors, vbFromUnicode) Else ShowColor = -1 End If End Function
Je suppose qu'il doit y avoir une astuce en passant par les couleurs RVB ou quelquechose du genre, mais je ne vois pas laquelle.
Un coup de pouce serait le bienvenu![]()
Partager