Objet non disponible sur cette machine

Bonjour à tous !

Avant de commencer, un grand merci pour toute la masse d'information très utile de ce forum et par conséquent à tous les membres pour leurs contributions qui m'ont permis d'avancer dans mes codes.

J'ai dans le cadre de mon activité professionnelle réalisé un classeur excel avec plusieurs userform dont l'utilisation est faite par des centaines de personnes localisées sur des sites différents.

Tout fonctionnait pour le meilleur des mondes lorsque que j'ai étendu la phase de test à plusieurs PC.

Soit tout fonctionne parfaitement sur certain PC soit j'obtiens sur les autres le message suivant :

Impossible de charger le objet car il n'est pas disponible sur cette machine

qui renvoie ensuite un bug à l'initialisation d'une Listview.

J'ai fait quelques recherches et suis tombé sur de nombreux cas similaires, le problème étant lié au fichier MsComctl.ocx qui peut différer selon les mises à jour d'Excel. J'ai trouvé une procédure pour résoudre le problème par l'intermédiaire du menu Démarrer/Exécuter de Windows.

Ma question est la suivante, est-il possible de résoudre ce bug par l'intermédiaire d'un code sans suivre la procédure précédemment décrite? En effet il y a environ 3500 PC concernés et il est inimaginable de demander à chaque utilisateur de réaliser la modification manuelle du MsComctl.ocx.

Données complémentaires :

PC en Windows xp / Seven 32bits (migration Seven en cours)

Excel 2010.

Je suis tombé sur un morceau de code que j'ai intégré à ThisWorkBook, malheureusement celui-ci ne fonctionne pas, peut-être est-il possible de l'adapter :

Private Sub Workbook_Open()
Dim Refs As Object, Ref As Object
On Error Resume Next
With ThisWorkbook
    Set Refs = .VBProject.References
    For Each Ref In Refs
        If Ref.IsBroken Then
            Refs.Remove Ref
        End If
    Next
    .VBProject.References.AddFromGuid _
       "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
End With
End Sub

Merci d'avance à tous,

Bonne journée.

Bonjour Reco,

Ton problème d'OCX MsComctl, ne peut pas être réglé dans le fichier même qui contient l'objet ListView.

c'est impossible car les objets sont chargés par Excel à l'ouverture du classeur

En revanche, tu peux faire un fichier de commande MS-DOS à lancer la 1ère fois

A+

Bonjour,

De plus tu peux avoir un problème de cache des bibliothèques suite à une maj de MS.

Pour résoudre ce problème, supprimez les versions mises en cache des bibliothèques de type contrôle (fichiers Extender) sur l'ordinateur client. Pour ce faire, recherchez sur votre disque dur les fichiers dont l'extension est « .exd » et supprimez tous les fichiers .exd qui s'y trouvent. Ces fichiers .exd seront automatiquement recréés à l'aide des nouveaux contrôles la prochaine fois que vous utiliserez VBA. Ces fichiers Extender se trouvent sous le profil d'utilisateur et éventuellement dans d'autres emplacements, tels que :

C:\documents and settings\nom_utilisateur\Application Data\Microsoft\Forms

C:\documents and settings\nom_utilisateur\AppData\Local\Temp\VBE

Les listview ont été souvent affectées.

eric

Bonjour,

Merci à vous deux pour ces premiers éléments.

Si je récapitule, pour être certain d'avoir bien compris, il serait possible que je crée un fichier .bat avec les commandes MS-DOS permettant :

  • dans un premier temps de supprimer les fichiers à extension .exd (implique une recherche de ces fichiers sur le PC) puis
  • dans un second temps de lancer une mise à jour depuis Microsoft Update du fichier MsComctl.ocx.

Ce fichier .bat pourrait être lancé à la première utilisation de mon classeur Excel.

Bon, il ne reste plus qu'à apprendre le codage des .bat

PS: De ce fait, dans le respect de la charte, je pense qu'il ne sera pas possible de faire vérifier mes codes .bat sur ce fil consacré à Excel?

Bonne journée.

Bonjour,

Concrètement, sur les 3'500 PC qui tournent ton application, combien sont réellement concernés par le bug ?

Bonjour,

Aucune idée, sur un échantillon de 10 PC dans mon service, 7 ont le problème.

Reco a écrit :

Bonjour,

Aucune idée, sur un échantillon de 10 PC dans mon service, 7 ont le problème.

Re,

Pour tout te dire, avant que tu ne te lances dans le long processus que tu as décris ... je me demande si l'âge de l'application n'est en cause ... concrètement, en "descendant" la config de base sur XP-Excel 2007, tu n'aurais pas de cette façon ... un plus grand "dénominateur commun" et beaucoup moins d'utilisateurs gênés ... ( à méditer...)

Pour les .exd j'imagine bien qq chose comme :

del /P/S C:\documents and settings\*.exd

>del /? Supprime un ou plusieurs fichiers.

/A Suppression en fonction des attributs

Après test tu pourrais enlever le commutateur de confirmation /P

Pour l'autre partie si tu as testé ton code et qu'il est correct tu pourrais peut-êtree faire avec, et si l'ajout est fait arrêter la procédure en invitant l'utilisateur à relancer excel (?)

eric

Bonjour James, bonjour Eric, bonjour le forum,

James, peux-tu me détailler davantage ce que tu me proposes lorsque tu parles de descendre la configuration de base sur XP-Excel 2007. Est-ce que tu veux dire rendre compatible mon classeur sur Excel 2007?

Eric, j'ai récupéré un PC portable du boulot, inutilisé sur lequel le problème se rencontre pour éviter d'embéter à chaque test mes collègues Je devrais être aidé par un collègue pour la réalisation de la commande MS-Dos. Si cela donne quelque chose, je vous proposerai une solution.

Bonne journée.

Reco a écrit :

Bonjour James, bonjour Eric, bonjour le forum,

James, peux-tu me détailler davantage ce que tu me proposes lorsque tu parles de descendre la configuration de base sur XP-Excel 2007. Est-ce que tu veux dire rendre compatible mon classeur sur Excel 2007?

Eric, j'ai récupéré un PC portable du boulot, inutilisé sur lequel le problème se rencontre pour éviter d'embéter à chaque test mes collègues Je devrais être aidé par un collègue pour la réalisation de la commande MS-Dos. Si cela donne quelque chose, je vous proposerai une solution.

Bonne journée.

Bonjour à tous,

Effectivement ... avec un vieux PC et la plus ancienne de vos configs ... peut-être pourras-tu t'éviter le méga casse-tête ... avec une application qui n'utilise que votre " plus petit commun dénominateur " ...

Je viens de penser que C:\documents and settings\ n'est que sur les dernières versions de windows.

Il faudrait ajouter c:\users\ (ou d:\users\) voir même faire c:\ en entier pour simplifier

eric

Bonjour,

Je reviens vers vous après tentative de mise à jour par l'intermédiaire d'un .bat

Malheureusement tous les professionnels concernés ne sont pas administrateur de leur poste et je ne dispose pas des droits permettant de faire la modification... donc ca tombe à l'eau.

En conséquence j'ai décidé de remplacer l'objet à l'origine du problème (Listview) par une frame dynamique pour laquelle j'ai ouvert un autre fil car j'ai quelques soucis mais le bout du tunel est proche!

Ici : https://forum.excel-pratique.com/excel/userform-dynamique-t57628.html.

Merci à tous pour votre aide.

Bonne soirée

Bonjour,

Merci pour l'info ...

Rechercher des sujets similaires à "objet disponible cette machine"