De gros soucis avec la référence Microsoft windows controls 6.0(sp6), MSCOMCTL.OCX.
1 réponse
ali.bouziane69
Bonjour au forum
Depuis plusieurs semaines je cherche une solution mais ne vain.
Cadre de sant=E9 en milieu hospitalier je d=E9veloppe pour mon unit=E9 de =
soins et celles de mes coll=E8gues une application de gestion documentaire =
sous excel vba.(fiches techniques des appareils m=E9dicaux, protocoles de s=
oins, roulement des soignants, textes de lois, etc. Cette base sera consult=
=E9e par tous les agents d es unit=E9s, techniciens , infirmi=E8res, aides =
soignantes, m=E9decins, cadre de sant=E9, etc
Pour cela j=92ai cr=E9e un userform nomm=E9 =AB UserF1 =BB contenant des co=
ntr=F4les dont 2 treeviews, 2 listviews et 2 imageslists.
Quand j=92ouvre le classeur excel :
-soit les controls du MSComctlLib ont tous disparus,=20
-soit le MSCOMCTL.OCX.n=92appara=EEt pas dans la liste des r=E9f=E9rences=
=20
et cela quelque soit le pack office du pc utilis=E9.(xp,2002,2002,2010). To=
us les pc sont en r=E9seau.
J=92ai tent=E9 un tas de solutions par macros dont :
-Suppression des r=E9f=E9rences manquantes
-R=E9installations de ces r=E9f=E9rences
-Chargement des r=E9f=E9rences dans un dossier perso dans lequel j=92ais co=
pi=E9 les *.dll,*.ocx, etc.
Rien n=92a fonctionn=E9 de fa=E7on durable.
J=92ai donc choisi de cr=E9er par macros :
- les contr=F4les treeview, listeviews et imagelists =E0 l=92ouverture du c=
lasser
- avec activation des lignes de codes faisant r=E9f=E9rences =E0 ces contr=
=F4les.
-=E0 la fermeture du classeur par macro je transforme les lignes de codes f=
aisant r=E9f=E9rences =E0 ces contr=F4les en commentaires
- et d=E9coche la r=E9f=E9rence Microsoft windows controls 6.0(sp6), MSCOMC=
TL.OCX.
Ca marche tr=E8s bien comme ca. Mais=85..
Dans la proc=E9dure qui cr=E9e les controls MSCOMCTL j=92ai mis deux lignes=
qui testent si ces contr=F4les existent d=E9j=E0 et s=92ils existent de ne=
pas les r=E9cr=E9er.
Et bien la rien ne marche.
Dans le code que je vous transmets les lignes de codes que j=92ai transform=
=E9s en commentaires sont celles qui me posent probl=E8me.
Auriez une solution qui me permettrait de retrouver le sommeil.
J=92ai cr=E9=E9 6 proc=E9dures pour les 6 contr=F4les dont voici le code de=
s 2 premi=E8res.
Par avance merci =E0 tous pour votre aide
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
Dim i As Integer
Dim usf As Object
Dim ObjetsTreeListImage As Object
Dim Obj As Object
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
Sub CreerTreeView1()
Set usf =3D ThisWorkbook.VBProject.VBComponents("UserF1")
'Set Obj =3D UserF1.Controls("TreeView2") 'ligne fautive
'If Obj.Name <> "" Then Exit Sub 'ligne fautive
Set ObjetsTreeListImage =3D usf.Designer.Controls.Add("MSComctlLib.Tree=
Ctrl.2")
With ObjetsTreeListImage
.Height =3D 290
.Left =3D 2
.Name =3D "TreeView1"
.TabStop =3D True
.Top =3D 35
.Visible =3D True
.Width =3D 276
End With
ReactiveLigne
End Sub
Sub CreerTreeView2()
Set usf =3D ThisWorkbook.VBProject.VBComponents("UserF1")
'Set Obj =3D UserF1.Controls("TreeView2") 'ligne fautive
'If Obj.Name <> "" Then Exit Sub 'ligne fautive
Set ObjetsTreeListImage =3D usf.Designer.Controls.Add("MSComctlLib.=
TreeCtrl.2")
With ObjetsTreeListImage
.Height =3D 290
.Left =3D 472
.Name =3D "TreeView2"
.TabStop =3D True
.Top =3D 35
.Visible =3D True
.Width =3D 276
End With
End Sub