Listviews qui disparaissent lors de migration de poste
Bonjour à tous,
voila mon problème,
J'ai crée un projet VBA sous Windows 7 et Excel 2010, qui communique avec une base de données Access.
Ce projet contient beaucoup de Listview et les composants suivants sont installés:
vbe7.dll_ Visual Basic For Applications
excel.exe_ Microsoft Excel 14.0 Object Library
stdole2.tlb_ OLE Automation
mso.dll_ Microsoft Office 14.0 Object Library
fm20.dll_ Microsoft Forms 2.0 Object Library
entitypicker.dll_ ATLEntityPicker 1.0 Type Library
msado28.tlb_ Microsoft ActiveX Data Objects 2.8 Library
scrrun.dll_ Microsoft Scripting Runtime
acropdf.dll_ Adobe Acrobat Browser Control Type Library 1.0
mscomctl.ocx_ Microsoft Windows Common Controls 6.0 (SP6)
Le soucis, est que lors de l'installation sur d'autres postes (Windows XP/Windows 7 Excel 2007 ou 2010),
le message d'erreur Microsoft Forms s'affiche " Impossible de charger le objet car il n'est pas disponible sur cette machine", autant de fois qu'il y a de Listview.
Le composant Microsoft Windows Common Controls 6.0 (SP6) est pourtant bien installé dans System32 et coché dans références.
Résultat, tous mes Listview ont disparu. Lorsque je les rajoute à la main, tout fonctionne.
Je ne peux pourtant pas faire ça pour tous les postes.
Je m'arrache les cheveux sur ce problème.
Quelqu'un aurait il une idée?
Merci pour votre aide
Fouxien
Bonjour
juste une question, as tu regarder dans sysWOW64 car les pc peuvent être des 2 versions
autrement j'ai déja eu se souci il a fallu que je supprime la listview et que je la remmtre
pascal
Bonjour Pascal et merci pour ton apport,
En effet, mon portable de développement et sous Windows 7 en 64 bit, mon composant est donc sous c:\Windows\SysWow64 ...
à contrario l'ordi sous XP est en 32 bit, mon composant est alors sous le registre c:\Windows\System32 ...
Sur les deux ordi, le composant MSCOMCTL.OCX est tout de même coché. Ne devrait'il donc pas fonctionné dans les deux cas?
Suis je obligé de créer deux fichier, un pour le 64 et un pour le 32?
Cordialement
Fouxien
Bon, une large avancée sur la question
je vous en fait part
En fait, bien que Microsoft Windows Common Controls 6.0 (SP6) soit coché instalée sur les deux postes, il ne s'agit pas tout à fait de la même version. J'ai donc remplacer celle du poste XP par celui de mon poste window 7 dans le bon registre, et hormis la police, tout fonctionne, les listview sont toujours la.
J'ai pourtant encore un petit soucis, les composants
ATLEntityPicker 1.0 Type Library et Adobe Acrobat Browser Control Type Library 1.0 sont manquants sur la machine XP, puis je les installer dans le registre même si ce n'est pas de l'office 2010 mais du 2007?
Cordialement
bonjour
pour savoir si les dll sont bien installer tu fait "executer" et rentre ces lignes l'une après l'autre
Regsvr32.exe c:\Windows\SysWOW64\Mscomctl.ocx
Regsvr32.exe c:\Windows\SysWOW64\Mscomct2.ocx
su c'est le pc en 64 bits
Regsvr32.exe c:\Windows\System32\Mscomctl.ocx
Regsvr32.exe c:\Windows\Sysem32\Mscomct2.ocx
si c'est le pc en 32 bits
si tu as une réponse réussi il faudra aller dans vba pour ajouter un outils comme le listview mais clic droit pour ajouter des complémentaires et la tu cherche, mais pour le calendrier c'est la dll mscal qui faut chercher dans exécuter
personnellement je l'ai pas et ça ne me gêne pas, car j'utilise des calendriers autonomes
si les 2 versions d'office et windows cohabite je ne serais te dire si c'est bon de les avoirs dans 2 répertoires
Pascal
Merci Pascal pour avoir pris le temps de me répondre.
Concernant le composant Mscomctl.ocx
Je vais essayer d'automatiser en vba:
- savoir si on est sous windows 32 ou 64 bit
- vérifier si le composant est présent dans le registre
- si oui le remplacer et l’exécuter si ce n'est pas la bonne version
- si non, l'installer et l'executer
- cocher le comosant listview
Pour le calendrier, j'ai trouvé aussi ça https://forum.excel-pratique.com/viewtopic.php?f=3&t=72229
Merci encore.
Je ne met pas ma question en résolu. J'y mettrait mon code automatisé si je le trouve.
Cordialement
Fouxien