VBA IE8 - IE11

Bonjour à tous,

Malgré de nombreuses recherches, aucune solution sur internet pour mon problème.

Alors je compte beaucoup sur vous

Le problème est le suivant :

Dans la société ou je travaille, une mise à jour vers Internet Explorer 11 a été faite (Obligatoire) mais les outils sur lesquelles mes collègues travaillent sont sous IE8 (Impossible de les faire migrer vers IE11). Nous avons donc IE8 et IE11 d'installer sur chaque poste.

J'avais développé pas mal de macros sous IE8 mais après l'installation d'IE11, plus aucune ne fonctionnent. Nous avons découvert avec des collègues qu'ils s'agissaient d'un problème de librairies car lors de l'installation d'IE11, de nouvelles librairies ont remplacés celle d'IE8 d'ou le problème.

Lorsque nous essayons les macros, celles-ci ne détectent même pas qu'IE8 est lancé (Alors qu'elles le faisaient très bien auparavant). Chose encore plus curieuse, les macros ne détectent pas le 1er onglet d'IE8 comme je viens de le dire mais si on ouvre un deuxième onglet alors miracle cela fonctionne. Bon on aurait pu travailler sur le deuxième onglet, ça aurait été embêtant mais on se serait habitué. Le soucis maintenant c'est que les outils de mes collègues ne fonctionnent que sur le premier onglet... Je craque

Bon j'ai essayé de vous expliquer clairement le soucis et donc ma question est "Êtes vous un dieux pour comprendre et résoudre ce problème et si oui, faite-le moi savoir très vite ?"

En tout cas merci à ceux qui liront ce post jusqu'au bout.

Bonne journée,

Jimmy

Bonjour jim044,

Peux-tu joindre un extrait des macros utilisées par tes collègues, vidées de toute donnée confidentielle.

(La partie du code qui gère les onglets est un bon point de départ pour te proposer une solution).

Si tu ne peux vraiment pas joindre d'extrait, peux-tu dire comment elles fonctionnent?

  • Appels API Windows
  • Utilisation d'un Object IE
  • Autre

Bonjour d3d9x,

Merci d'avoir pris le temps de tout lire.

Je te joins une macro (Sous Word, mais toutes les macros Word ou Excel ne fonctionnent plus). La macro est dans "Module1".

Utilisation de la référence Microsoft HTML Object Library et Microsoft Internet Controls.

Bonne journée,

Jimmy

21no-sinistre.zip (15.87 Ko)

Bonjour jim044,

Je ne peux pas exécuter tout le code, qui fait appel à d'autres programmes, et des ressources locales je pense, mais pour la partie IE je n'arrive malheureusement pas à reproduire ton erreur.

En effet lorsque j'exécute ton code, chaque nouvel onglet est pris en compte comme un nouvel élément, ainsi que chaque nouvelle instance d'IE. Bref toutes les instances IE et tous les onglets sont bien balayés par le code (J'utilise IE11).

capture

Afin d'en avoir le coeur net, je t'invite à modifier ton code de la sorte:

For Each IE In WebCtrls
        Debug.Print IE.LocationURL

        T = IE.LocationURL
        T = Left(T, 33)

        If T = "http://TomPi/consoplus/Affaires" Then

            IE.Visible = True
            IE.Top = True

            'récupération des valeurs dans les variables
            Set IEDoc = IE.Document
            no_sin = IEDoc.getElementsByName("ConveyorAffairesDetailzz_17732")(0).Value
            TomPi_ouvert = True

        End If
Next IE

Après exécution de la macro, Alt + F11 pour aller dans l'éditeur VBE, et Ctrl + G pour afficher la fenetre de débeugage. Voilà ce que chez moi ça donne. J'ai 3 onglets, et dans chaque j'ai fait une recherche Bing.

capture2

Voilà du code simplifié qui fait uniquement le débeugage.

'Procédure d'import du numéro de sinistre
Sub No_sinistre()
'Déclaration variables écran Aria
Dim WebCtrls As New SHDocVw.ShellWindows
Dim IE As SHDocVw.InternetExplorer
Dim Aria_ouvert As Boolean

'Recherche parmi toutes les pages web celle avec TomPi
'et récupère l'info du numéro de sinistre
Aria_ouvert = False
For Each IE In WebCtrls
    Debug.Print IE.LocationURL
Next IE

Set WebCtrls = Nothing
Set IE = Nothing

End Sub

J'attends ton retour

Merci beaucoup de ton retour.

En effet, sur mon poste (chez moi), les macros fonctionnent aussi parfaitement mais au boulot plus rien. C'est vraiment du à la double installation d'IE8 et IE11 donc j'aurais aimer savoir si quelqu'un avait eu le même cas dans sa société ou même chez lui.

Ou alors quelqu'un qui saurait comment remettre les librairies IE8 à la place de celle d'IE11 car IE11 ne nous sert à rien. Sachant que je ne suis pas administrateur de mon poste et que je ne le serais jamais.

Merci,

Jimmy

2 questions qui pourraient faire avancer le schmilblick

1) As-tu tenté de faire tourner mon code sur les machines de ton boulot? (Si oui, quel résultat?)

2) As-tu pensé à remplacer la DLL qui gère toutes ces fonctions sur les ordinateurs de ton boulot? "SHDocVw.dll"

(sauvegarde de l'ancienne, et importation de celle que tu as sur ton ordinateur par exemple)

Rechercher des sujets similaires à "vba ie8 ie11"