Objet non disponible sur cette machine

Y compris Power BI, Power Query et toute autre question en lien avec Excel
R
Reco
Membre habitué
Membre habitué
Messages : 52
Inscrit le : 29 juillet 2014
Version d'Excel : 2010

Message par Reco » 28 octobre 2014, 10:26

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.
Avatar du membre
BrunoM45
Membre impliqué
Membre impliqué
Messages : 2'857
Appréciations reçues : 86
Inscrit le : 29 octobre 2011
Version d'Excel : 2016 FR, O365 FR
Contact :

Message par BrunoM45 » 30 octobre 2014, 06:50

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+
[F1] est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses

Il n'y a ni bon ni mauvais usage de la liberté d'expression, il n'en existe qu'un usage insuffisant.
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'337
Appréciations reçues : 393
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 30 octobre 2014, 07:31

Bonjour,

De plus tu peux avoir un problème de cache des bibliothèques suite à une maj de MS.
http://support2.microsoft.com/kb/2598039 :
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
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
R
Reco
Membre habitué
Membre habitué
Messages : 52
Inscrit le : 29 juillet 2014
Version d'Excel : 2010

Message par Reco » 30 octobre 2014, 10:20

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 ::B-

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.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 30 octobre 2014, 10:43

Bonjour,

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

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
R
Reco
Membre habitué
Membre habitué
Messages : 52
Inscrit le : 29 juillet 2014
Version d'Excel : 2010

Message par Reco » 30 octobre 2014, 10:59

Bonjour,

Aucune idée, sur un échantillon de 10 PC dans mon service, 7 ont le problème. :roll:
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 30 octobre 2014, 13:28

Reco a écrit :Bonjour,

Aucune idée, sur un échantillon de 10 PC dans mon service, 7 ont le problème. :roll:
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...)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'337
Appréciations reçues : 393
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 30 octobre 2014, 14:03

Pour les .exd j'imagine bien qq chose comme :
del /P/S C:\documents and settings\*.exd
>del /? Supprime un ou plusieurs fichiers.
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms
/P Demande une confirmation avant de supprimer un fichier.
/F Force la suppression de fichiers en lecture seule.
/S Supprime les fichiers dans tous les sous-répertoires.
/Q Pas de confirmation avant suppression avec car. génériques.
/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
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
R
Reco
Membre habitué
Membre habitué
Messages : 52
Inscrit le : 29 juillet 2014
Version d'Excel : 2010

Message par Reco » 31 octobre 2014, 09:36

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 :lol: 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.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 31 octobre 2014, 09:42

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 :lol: 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 " ... :wink:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message