vgendron
XLDnaute Barbatruc
Bonjour à toutes et tous..
Me revoici pour un nouveau pb
Dans mon appli VBA, j'ai de nombreux formulaires
sur certains d'entre eux; j'ai des controles "ListView - ImageList - TreeView"
Lorsque je travaille et développe l'appli sur mon PC, aucun pb
mais lorsque je souhaite installer cette appli sur un autre PC du labo avec une autre version d'excel
1) des références VBA viennent à Manquer ==> je dois donc les décocher manuellement
le code suivant trouvé sur de nombreux posts ne fonctionne pas
Soit... je n'ai que 2 références à décocher...
2) les controles "ListView - ImageList - TreeView" disparaissent (ceux liés à la référence manquante.. forcément...)
je me disais donc.. comme j'en ai une petite dizaine.. je vais faire un code pour les recréer automatiquement
Sauf. que ca ne fonctionne pas non plus..
et oui..le controle n'existe plus.. mais tout son code associé, lui est encore la.. et plus particulièrement dans le f_EdGraphe_Initialize..
d'ou le EnableInitializeUSF que je mettais à faut pour bypasser le _Initialize..
mais ca ne suffit pas.. visiblement..le compilateur (?) voit le code associé à mon controle manquant avant même de rentrer dans le Initialize..
Donc, je ne vois plus qu'une solution.. éviter de perdre les références, ou référencer autremenent ces controles.
auriez vous des pistes ou de la litterature à me conseiller..?
Me revoici pour un nouveau pb
Dans mon appli VBA, j'ai de nombreux formulaires
sur certains d'entre eux; j'ai des controles "ListView - ImageList - TreeView"
Lorsque je travaille et développe l'appli sur mon PC, aucun pb
mais lorsque je souhaite installer cette appli sur un autre PC du labo avec une autre version d'excel
1) des références VBA viennent à Manquer ==> je dois donc les décocher manuellement
le code suivant trouvé sur de nombreux posts ne fonctionne pas
VB:
Sub RemoveRef()
Dim Ref As Reference
'La procédure boucle sur la collection de références et supprime celles qui sont
'spécifiées manquantes.
For Each Ref In ThisWorkbook.VBProject.References
If Ref.IsBroken = True Then _
ThisWorkbook.VBProject.References.Remove Ref
Next Ref
End Sub
2) les controles "ListView - ImageList - TreeView" disparaissent (ceux liés à la référence manquante.. forcément...)
je me disais donc.. comme j'en ai une petite dizaine.. je vais faire un code pour les recréer automatiquement
VB:
'lors de l'installation du GTA sur un PC avec différentes versions de Excel antérieures à 2010)
'certains controles sur différents formulaires sont supprimés
'cette Macro à pour objectif de les recréer automatiquement
'PréRequis: il faut que les références manquantes aient été décochées
'Il faut que les controles ListView - TreeView - ImageList et Flex soient "reconnus"=Références adéquates cochées (addOn Component One)
Public EnableInitializeUSF As Boolean
Sub RedrawControles()
EnableInitializeUSF = False
Dim ctrl As Control
Dim ExisteDeja As Boolean
Dim Obj As Control
With f_EdGraphique 'avec le formulaire "f_EdGraphique"
For Each ctrl In .Controls
If ctrl.Name = "tvGraphe" Then ExisteDeja = True 'nom du controle ListView
Next ctrl
If Not ExisteDeja Then
Set Obj = .Controls.add(ID, "tvGraphe", True)
End If
End With
EnableInitializeUSF = True
End Sub
Sauf. que ca ne fonctionne pas non plus..
et oui..le controle n'existe plus.. mais tout son code associé, lui est encore la.. et plus particulièrement dans le f_EdGraphe_Initialize..
d'ou le EnableInitializeUSF que je mettais à faut pour bypasser le _Initialize..
mais ca ne suffit pas.. visiblement..le compilateur (?) voit le code associé à mon controle manquant avant même de rentrer dans le Initialize..
Donc, je ne vois plus qu'une solution.. éviter de perdre les références, ou référencer autremenent ces controles.
auriez vous des pistes ou de la litterature à me conseiller..?