Conflit entre VBScript_RegExp_55 et Microsoft Visual Basic for Applications

Bonjour à Toutes et Tous,

Je suis nouveau sur ce forum.

J'essaye d'écrire un petit programme en vba pour l'indentation des macros. Le projet est bien avancé, suite à un crach de mon disque dur, et une fois tout récupéré j'ai un conflit entre la référence "Microsoft Visual Basic for Applications Extensibility 5.3" et celle "Microsoft VBScript Regular Expressions 5.5".

Dans mon programme j'ai ajouté un menu contextuel pour l’éditeur VBE. et j'ai ajouté une macro de numérotation des lignes où les recherches sont basées sur les expressions régulières de vba.

Lorsque les deux références sont présentent, j'ai une erreur de compilation sur une ligne bien spécifique

 Set Ctrl = Application.VBE.[b]CommandBars[/b].FindControl(Tag:=sMenuItemTag)[/quote]
 

avec le message

Erreur de chargement de la dll

.

Bien sur j'ai lancé une réparation de mon OFFICE, et actualisé VB6EXT.OLB et MSCOMCTL.OCX.

Lorsque "Microsoft VBScript Regular Expressions 5.5" n'est pas référencé alors le menu fonctionne normalement et il n'y a pas d'erreur de compilation. Dès que je le référence, immédiatement l'erreur de compilation apparait.

je vous joint le fichier du menu. si vous activer la référence "Microsoft VBScript Regular Expressions 5.5". j'aimerai connaitre votre réaction.

j'utilise EXCEL 2013 FR (15.0.5127.1000) sous Windows 10 professionnel n°17763

Votre aide me sera précieuse.

Bonjour,

je suppose que tu fais ça pour le plaisir mais à tout hasard je te signale l'existence de Smart Indenter.

Sur ton fichier je n'ai pas d'erreur à l'ouverture, ni en démarrant en pas à pas Private Sub AddIndenterMenuItem()

Y'a-t-il une action spécifique à faire ?

Sur 2010...

eric

Bonjour eriiic,

je connais smart indenter sauf que je voulais faire le même que je pourrais mettre à la disposition de tout le monde et non codé.

Revenant à mon problème est ce que tu as ajouter la référence : "Microsoft VBScript Regular Expressions 5.5"

C'est son ajout qui déclenche chez moi l'erreur de compilation.

Oui, c'est bien coché dans les références, ainsi que 'Microsoft Visual Basic for Applications Extensibility 5.3'.

Mais sur W7 et 2010...

Quand tu as actualisés tes dll, tu les as bien mises dans le bon répertoire et déclarées dans le registre ?

Pour les regex qu'il semble ne pas trouver voici ce que j'ai :

2019 05 12 19 55 50

des fois que...

eric

Merci Eric de m'aider à avancer

Mes références sont au bon endroit.

"Microsoft Visual Basic for Applications Extensibility 5.3" est à : "C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"

et

"Microsoft VBScript Regular Expressions 5.5" à : "C:\Windows\SysWOW64\vbscript.dll\3"

j'ai l'impression que "VBScript_RegExp_55" décharge une dll et empêche son rechargement. Il s'agit probablement de "MSCOMCTL.OCX". j'ai aussi utilisé

regsvr32 mscomctl.ocx / u 

et

regsvr32 mscomctl.ocx 

avec la mention réussi pour les deux.

Est ce parce que j'utilise W10 en 64bits et Excel 2013 en 32.

Dans tous les cas je préfère garder Excel 2013 en 32 pour un meilleur échange de macro de petits bouts de programme.

Oui, il faut absolument garder excel 32 bits si tu n'as aucune raison impérieuse de mettre la 64. Même sur un système 64.

Par contre tu n'indiques pas le chemin dans l'inscription. Normal ?

Désinscris celle que tu as faites (/u) et met plutôt regsvr32 c:\windows\syswow64\mscomctl.ocx

Bien que je ne vois pas trop le lien de cette bibliothèque avec celle des regex (?!?), au moins tu seras sûr de cette inscription.

eric

Bonjour Eric,

Quand j'ai fait l'inscription j'étais dans le répertoire "c:\windows\syswow64".

J'ai refait la manipulation avec

regsvr32 c:\windows\syswow64\mscomctl.ocx /u

et

regsvr32 c:\windows\syswow64\mscomctl.ocx

La situation reste inchangée.

Ce qui m'a orienté sur "MSCOMCTL.OCX" c'est le fait que lors de l'erreur de compilation sur la ligne

"Set Ctrl = Application.VBE.CommandBars.FindControl(Tag:=sMenuItemTag)"

j'ai "CommandBars" qui est surligné lors du message "Erreur de chargement de la dll".

J'ai aussi lancé plusieurs fois la réparation de "OFFICE" sans succès.

Je n'ai pas compris non plus pourquoi il y aurai un lien entre les bibliothèques VBIDE et VBScript_RegExp_55

pourtant l'erreur est là.

Dans mes autres macros VBIDE et VBScript_RegExp_55 coexistent tant que je n'ai pas fait appel à "CommandBars" dans une ligne de programme.

Bonjour,

je commence à être à cours d'idée...

Est-ce que tu avais atteint cette étape là et que ça a fonctionné avant que tu doives ré-installer ?

Si tu n'as jamais pu prouver le fonctionnement sur 2013, on pourrait se poser des questions dessus.

Ca serait bien si qq'un avec 2013 (et tant qu'à faire sur W10) pouvait confirmer ou non le fonctionnement de ton fichier.

Quitte à perdre du temps, tu pourrais faire la complète. Désinstaller à nouveau, nettoyer avec le fixit de MS puis avec ccleaner avant de réinstaller.

Voir option 2 : https://support.office.com/fr-fr/article/d%C3%A9sinstaller-office-d-un-pc-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?ui=fr-FR&rs=fr-FR&ad=FR

eric

Merci Eric pour ton accompagnement,

En attendant qu'un membre du Forum essaye le fichier avec la même configuration à savoir

W10 ver 17763 et Office pro plus 2013fr (ver. Excel 15.0.5127.1000)

Je vais mettre en l’œuvre ton option 01.

Eric bonjour,

Une question bête : as-tu un lien pour télécharger fixit de MS?

J'en avais un mais ils chamboulent toujours tout chez MS.

Regarde celui que j'ai mis (aller à l'option 2 sur la page), apparemment ça ne s'appelle plus fixit mais ça nettoie les résidus.

eric

Merci Eric,

Je passe à l'option 2

Bonjours à Tous,

@ERIC

J'ai fait un point restauration.

Je suis passé à l'option 2 et désinstallais totalement Excel 2013 avec SetupProd_OffScrub.exe de Microsoft.

J'ai appliqué Ccleaner.

J'ai réinstallé à nouveau Office 2013.

Ensuite j'ai lancé le fichier Excel que j'avais proposé au téléchargement. Rien n'y fait j'ai la même erreur.

Une piste supplémentaire et qui concerne Word où j'ai perdu la possibilité d'ouvrir les PDF avec.

Je ne sais pas s'il y a un lien et je vais posté en plus une requête sur le bon topic.

Bonjour,

plus d'idée, désolé.

Il faudrait attendre qq'un avec 2013 sur W10 pour tester.

Vu que cette version n'était pas une totale réussite, c'est peut-être un bug de plus.

eric

Merci Eric,

J'attends si quelqu'un pourrait s’intéresser à mon post.

Rechercher des sujets similaires à "conflit entre vbscript regexp microsoft visual basic for applications"