Problème de référence sur une DLL sur application VBA Excel

cs_rlapt Messages postés 63 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 25 juin 2013 - 9 déc. 2012 à 19:41
cs_rlapt Messages postés 63 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 25 juin 2013 - 10 déc. 2012 à 12:56
Bonsoir,

Je pense avoir un problème de référence sur une DLL sur une application VBA-Excel.

Je souhaite créer de façon dynamique un contrôle REFEDIT dans une userform.

Si je le place à l'aide de l'éditeur visual basic. Pas de problème. Ca fonctionne.

par programme j'utilise la syntaxe suivante pour ajouter ce contrôle :
Set Contrôle = Me.Controls.Add("RefEdit.Ctrl", "SCO_RE_Sel" & Format(NbreConditions, "00"), True)

Une erreur apparait sur cette ligne (Erreur d'exécution - Elément introuvable) lors du déroulement du programme.

La DLL est placée dans les répertoires "C:\Program Files\Microsoft Office\Office14" et "Office12".

De plus sous l'editeur visual basic, j'ai mis en référence cette DLL (REFEDIT.DLL) référencée avec les commandes suivantes :

copy "C:\Users\Rlapt\Suivi d'offres\OCX\OCX\XP\REFEDIT.DLL" "%systemroot%\System32\REFEDIT.DLL" /y
%systemroot%\System32\regsvr32.exe REFEDIT.DLL /s

Je dois préciser que l'application fonctionnait avant que je réinstalle Windows vista et Office 2007.

Si vous avez déjà eu ce genre de problème, merci de vos conseils.


RLAPT

3 réponses

Utilisateur anonyme
9 déc. 2012 à 21:42
Bonjour,

Comme les devins sont en vacance, la seule chose que l'on peut dire c'est que de nombreux contrôles ocx n'ont pas été (re)compilés pour les systèmes à 64 bits. Mais là, la question c'est le noir complet.

Il y a bien cela, et cela mais je ne les ai pas sous la main actuellement pour essayer.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2012 à 21:46
Bonjour,
Essaye (juste pour voir) non de mettre cette dll ici (dans program files) où là : dans system32, mais de pointer vers là où elle est, en ajoutant la référence de manière dynamique, ainsi :

 Dim lesRefs As Object
   Set lesRefs = ThisWorkbook.VBProject.References
   On Error Resume Next
   If Val(Application.Version) >= 12 Then
        lesRefs.Addfromfile "C:\Program Files (x86)\Microsoft Office\Office12\refedit.dll"
   Else
        lesRefs.Addfromfile "C:\Program Files\Microsoft Office\Office\refedit.dll"
   End If
   On Error goto 0



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_rlapt Messages postés 63 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 25 juin 2013
10 déc. 2012 à 12:56
Bonjour,

Merci de vous intéresser à mon problème et de vos réponses.

Pour la réponse de cmarcotte une information supplémentaire : mon système vista est un 32 bit.
De plus j'ai fait la même mani sur XP après rechargement du système d'exploitation même problème.

Pour la réponse de ucfoutu pas d'amélioration.

L'application en question tourne depuis plusieurs années sur un vingtaine de postes sans problème (XP 32 et 64, W7 32 et 64) et tournait sur mes ordis personnels (XP 32, Vista 32) avant rechargement des systèmes d'exploitation.

Je me demande si cela ne provient pas des ajouts de sécurité Microsoft.

Si vous avez des idées, je suis preneur. Sinon, j'essayerai de recharger une nouvelle fois le système.

Cordialement

RLAPT
0
Rejoignez-nous