“Bibliothèque d'objet non valide ou contient des références...” dans Excel VBA avec DatePicker
J'ai travaillé sur un classeur Excel avec beaucoup de code VBA pour un certain temps et maintenant, j'ai envoyer ce fichier à certains de nos collègues pour tester et ça ne fonctionne PAS dans leur ordinateur.
Nous travaillons tous dans la même entreprise, et de disposer de Windows XP SP2 avec Office 2003.
Le classeur a un formulaire qui s'ouvre lorsque vous cliquez sur une forme et il contient des contrôles.
Quand ils cliquent sur la forme pour la forme pour afficher le message d'erreur suivant apparaît:
"Bibliothèque d'objet non valide ou contient
les références à l'objet de définitions que
n'a pas pu être trouvé"
Dans le formulaire il y a un DatePicker et je pense que c'est là que réside le problème. Si je supprime le datePicker de la forme et de les envoyer de nouveau le fichier ils n'obtiennent pas ce message d'erreur.
J'ai déjà essayé de supprimer les mscomct2.exd de fichier comme indiqué dans le présent deux sites "Microsoft" et "lessanvaezi" mais l'erreur stil pop. J'ai vérifié et le nouveau .exd fichier qui a été généré.
Quelques informations Supplémentaires:
- - Je vérifier leur système et ils ont le fichier mscomct2.ocx dans l'emplacement correct(c:\Winxp\System32).
- Si j'ouvre un vide fichier Excel, allez dans l'éditeur VBA allez dans Outils->Référence, je ne vois PAS l'option d'inscrire le "Microsoft Contrôle Commun-2 6.0 (SP6)" (mscomct2.ocx). Au lieu de cela, je vois un "Microsoft Windows Common Controls Satellite-3 6.2)" (cmct3de.dll).
- - Je envoyer mon collègue le fichier avec le datePicker, mais sans la référence à la "Microsoft Contrôle Commun-2 6.0 (SP6)". Avant de cliquer sur la forme et l'ouverture du formulaire, j'ai essayé de référence de la MSCOMCT2.ocx bibliothèque dinamically avec le code suivant. Il fait référence à la "Microsoft Contrôle Commun-2 6.0 (SP6)" mais l'erreur est toujours pop.
Sous RegisterCtl()
'MSComCt2.ocx strGUID = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" ThisWorkbook.VBProject.References.AddFromGuid guid:=strGUID, Major:=1, Minor:=0
end Sub
- Si je puis aller vers le formulaire dans l'éditeur de VBE et faites un clic droit sur l'
boîte à outils, puis aller à la
Des contrôles supplémentaires pour ajouter de la
"Microsoft Date et TimePicker"
contrôle, je vois que l'option listée
À deux reprises. Malheureusement regarless
dont un que je cchose, le comportement
est le même: le datepicker symbole
est ajouté dans la boîte à outils, mais quand je
faites glisser le contrôle de la forme, un
msgBox pop en disant que le contrôle
n'était pas disponible.
Personne n'a une idée de ce qui est mal? Que puis-je faire pour le faire fonctionner leur ordinateur?
J'apprécie toute l'aide.
Edit:
L'ordinateur avec ce problème a été mis à jour donc je ne vais pas être en mesure de trouver la solution pour mon cas. Je suis choisissant les Archers de la solution a permis à la plupart des gens (la Plupart des Upvotes).
OriginalL'auteur CaBieberach | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
J'ai le même problème aussi. http://support.microsoft.com/kb/957924/en-us supprimez tous .exd fichiers faire mon programme de travail!
Aller dans l'invite de commande et tapez la ligne suivante de commandes ms-DOS:
Code:
Génial, merci
J'utilise cette solution pour les KB2598041 (10 avril 2012) et il fonctionne parfaitement. Merci.
C:\Documents et les Paramètres>DEL /S /A H /A:-H *.EXD fichier Supprimé - C:\Documents et les Paramètres*****\Application Data\Microsoft\Formulaires \MSComctlLib.exd fichier Supprimé - C:\Documents et les Paramètres****\Local Settings\Temp\Excel8.0\MSF orm.exd fichier Supprimé - C:\Documents et les Paramètres*****\Local Settings\Temp\VBE\MSComctl Lib.exd fichier Supprimé - C:\Documents et les Paramètres*****\Local Settings\Temp\VBE\MSComDlg .exd fichier Supprimé - C:\Documents et les Paramètres*****\Local Settings\Temp\VBE\MSForms. exd après cela, l'erreur a disparu
OriginalL'auteur Archer
J'ai eu ce problème. Je ne me souviens pas quelle est la raison, mais dans votre formulaire où vous avez la date/l'heure sélecteur, mettez ceci dans userform_initialize. Le code ajoute une zone de texte si ils n'ont pas la bonne référence. Je sais que c'est pas la MEILLEURE solution, mais ses une solution de contournement. Je n'étais pas en mesure d'exécuter regsvr32 sur toutes les machines en raison de nos administrateurs système.
OriginalL'auteur Patrick
Je pense que #2 est la racine du problème. Si vous pouvez obtenir mscomct2.ocx pour apparaître dans l'Outil de Références dans un nouveau classeur, il sera sans doute corrigé le reste de vos problèmes. Avez-vous essayez d'inscrire le ocx? Démarrer - Exécuter - cmd pour ouvrir une fenêtre DOS. Naviguer dans le dossier system32. Type
Je pense que cela va mettre de l'ocx dans le menu Outils de la boîte de Références et nous espérons qu'il fixe. Voici un lien pour insalling l'ocx Windows 7
http://www.dailydoseofexcel.com/archives/2010/05/28/calendar-control-dll-on-windows-7-64-bit/
Pas votre situation, mais peut-être utile. Voir également la MME page sur regsvr32
http://support.microsoft.com/kb/249873
J'ai Également supprimé de nouveau le .exd. Il est intéressant de noter, à nouveau .exd fichier a été créé avec la modification de la date d'aujourd'hui, mais avec la date de création d'il y a plusieurs mois. Toute autre suggestion est très apprécié.
OriginalL'auteur Dick Kusleika
J'ai eu le même problème récemment. Après environ deux jours téléchargé le nouveau mscomct2.fichier ocx:
http://support.microsoft.com/kb/297381
non précédente, supprimé manuellement une étrange MRU clé avec "mscomct2" dans l'un des champs (juste au cas seulement), les nouvelles (à l'aide de l'Accès ActiveX menu).
Et tous les contrôles de mscomct2.ocx sont répertoriés une seule fois depuis !
Mais malheureusement, cela n'a pas supprimé les messages d'erreur. Cependant, après un double consécutifs à l'importation pour le nouveau conteneur:
original_file.mdb --> db1.mdb --> db2.mdb
les messages d'erreur n'apparaissent plus (dans la base de données db2.fichier mdb). Mais ils étaient encore visibles au cours de trnasfer entre original_file.mdb et db1.mdb.
OriginalL'auteur D K
Je vais avoir ce même problème avec un fichier que j'ai envoyé à un autre groupe. J'ai un sélecteur de date dans un formulaire utilisateur, et le fichier fonctionne très bien avec Excel (2007 et 2010), sauf pour les machines dans ce groupe. Le message d'erreur est le même que dans le post d'origine.
La réponse semble être la suivante, comme décrit par une personne de soutien qui a regardé:
Il s'avère que la MSCOMCT2.OCX fichier est manquant à partir de l'ordinateur de l'utilisateur. Ce fichier est Microsoft Windows Common Controls-2 6.0 (MSCOMCT2.OCX). Il semble que cette commande fournit la capacité du modèle à utiliser avec le Sélecteur de Date.
Le processus de fixer son ordinateur a été comme suit:
Copie mscomct2.fichier ocx pour c:\windows\system32
Enregistrer le fichier ocx en exécutant la commande suivante sur son ordinateur. À partir d'une invite de commande, tapez regsvr32.exe c:\windows\system32\mscomct2.ocx puis appuyez sur Entrée.
Cette instruction peut être spécifique pour le groupe des ordinateurs, mais l'identification de mscomct2.ocx que le coupable est un début. Je n'ai pas de recommandation spécifique de où obtenir ce fichier, sauf qu'il semble être disponible sur internet.
OriginalL'auteur Hillyman
Essayez de supprimer de démarrage des compléments d'ici (n'oubliez pas de version d'Office):
La question est à propos de Excel, non?
OriginalL'auteur Konstantin Spirin
Juste un-registre
MSCOMCTL.OCX
et puis de l'enregistrer.OriginalL'auteur Dasharath
Vérifiez que le (Nom) domaine sur votre DatePicker contrôle ActiveX n'est pas l'incrémentation. J'ai une feuille excel avec une zone de liste déroulante dans laquelle les changements de nom à chaque fois que je l'ai ouvert, et où il est référencé dans le code qu'il génère cette même erreur.
J'référence ComboBox1, mais étrangement, il est maintenant ComboBox17.
OriginalL'auteur Char2d2