Bonjour à tous,

Après avoir achevé le classeur et l'avoir diffusé sur le forum pour divers problèmes, il est advenu qu'il ne fonctionnait que sur mon PC. Je l'ai presque entièrement réparer ; les problèmes venaient de variable non déclarées et d'objets active X que j'ai du remplacer, mais j'utilise une procédure trouvée sur le forum afin de colorier les cellules de la zone graphique du diagramme. Bien sur elle fonctionne parfaitement sur le poste ou j'ai créer le programme mais impossible de la lancée sur un autre poste.
http://www.developpez.net/forums/d45...lette-couleur/
apparament pas de problème avec la première partie :

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
Private Declare Function ChooseColor Lib "comdlg32.dll" Alias _
    "ChooseColorA" (pChoosecolor As ChooseColor) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) 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
J'ai beau faire du pas à pas, mettre un espion comme vous me l'avez conseiller. Je ne sais pas quoi faire et n'y comprend pas grand chose :

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
Private Function showcolor() As Long
         Dim ChooseColorStructure As ChooseColor
         Dim Custcolor(16) As Long
         Dim lReturn As Long
         ChooseColorStructure.lStructSize = Len(ChooseColorStructure)
         ChooseColorStructure.hwndOwner = FindWindow("XLMAIN", _
            Application.Caption)
         ChooseColorStructure.hInstance = 0
         ChooseColorStructure.lpCustColors = StrConv(CustomColors, _
            vbUnicode)
         ChooseColorStructure.flags = 0
         If ChooseColor(ChooseColorStructure) <> 0 Then
             showcolor = ChooseColorStructure.rgbResult
             CustomColors = StrConv(ChooseColorStructure.lpCustColors, _
               vbFromUnicode)
         Else
             showcolor = -1
         End If
     End Function
cette ligne pose problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
StrConv(CustomColors, vbUnicode)
CustomColors et VbUnicode demande à être déclaré aet si je les mets en long, ensuite c'est StrConv qui renvoit "incompatibilité de type et si je déclare la variable, que ce soit en long, double ou même variant, j'ai le message "tableau attendu"
Le problème se répète aussi sur cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CustomColors = StrConv(ChooseColorStructure.lpCustColors, vbFromUnicode)
Je suis incapable de réparer cette fonction et tous les renseignements que j'ai pu trouver ne m'y aide pas. J'avais pensé la remplacée par une autre fonction qui crée une palette de couleur utilisable par sélection à la souris, mais je n'ai rien vu de convaincant mis à part la fonction que j'utilise déjà et qui ne veux plus fonctionnée.

Je vous remercie encore pour votre aide

Didier