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 :
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 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
cette ligne pose problème
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
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"
Code : Sélectionner tout - Visualiser dans une fenêtre à part StrConv(CustomColors, vbUnicode)
Le problème se répète aussi sur cette ligne :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CustomColors = StrConv(ChooseColorStructure.lpCustColors, vbFromUnicode)
Je vous remercie encore pour votre aide
Didier
Partager