Macro qui utilise IE ne marche plus sous Windows 7
Résolu/Fermé
joey_nmuk
-
25 juin 2013 à 17:32
Valéry01 Messages postés 7 Date d'inscription samedi 1 juin 2013 Statut Membre Dernière intervention 15 septembre 2016 - 4 sept. 2016 à 08:06
Valéry01 Messages postés 7 Date d'inscription samedi 1 juin 2013 Statut Membre Dernière intervention 15 septembre 2016 - 4 sept. 2016 à 08:06
A voir également:
- Macro qui utilise IE ne marche plus sous Windows 7
- Windows ne démarre pas - Guide
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Movie maker windows 7 - Télécharger - Montage & Édition
- Télécharger windows 7 32 bits usb - Télécharger - Systèmes d'exploitation
- Clé windows 10 gratuit - Guide
6 réponses
Hello les guys!
J'ai trouvé!!
Remplacé le code :
PAR
et le miracle se produit.
C'est une histoire à base de registre et de protect mode d'IE.
J'ai trouvé!!
Remplacé le code :
Dim IE As Object Set IE = 'CreateObject("InternetExplorer.Application")
PAR
Dim IE As Object Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
et le miracle se produit.
C'est une histoire à base de registre et de protect mode d'IE.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 26/06/2013 à 11:58
Modifié par pijaku le 26/06/2013 à 11:58
Bonjour,
Pour répondre à ta question : Est-ce que sous windows 7, il faut une librairie spéciale pour pouvoir utiliser les fonctionnalité d'IE?
La réponse est non, seules sont utiles les deux références suivantes :
- Microsoft HTML Object Library
- Microsoft Internet Controls
Par contre, si tes "champs" ne se remplissent pas, c'est, à mon avis, parce qu'ils ne sont pas clairement identifiés.
Si tes champs sont de type "input", avec un "id" personnel, je n'utiliserai pas .all pour les identifier, mais l'élément html Input : HTMLInputElement, s'ils sont de type link, utiliser HTMLLinkElement.
Voici un exemple :
Sache également que l'on peux déclencher une fonction javascript depuis VBA. La syntaxe est :
Après cela, sans élément supplémentaire (extraits du code source de la page html) il sera très difficile de t'aider davantage.
Cordialement,
Franck P
Pour répondre à ta question : Est-ce que sous windows 7, il faut une librairie spéciale pour pouvoir utiliser les fonctionnalité d'IE?
La réponse est non, seules sont utiles les deux références suivantes :
- Microsoft HTML Object Library
- Microsoft Internet Controls
Par contre, si tes "champs" ne se remplissent pas, c'est, à mon avis, parce qu'ils ne sont pas clairement identifiés.
Si tes champs sont de type "input", avec un "id" personnel, je n'utiliserai pas .all pour les identifier, mais l'élément html Input : HTMLInputElement, s'ils sont de type link, utiliser HTMLLinkElement.
Voici un exemple :
Sub test() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim HtmlElemUtilisateur As HTMLInputElement Dim HtmlElemPassword As HTMLInputElement Dim Valider As HTMLLinkElement IE.navigate "[http://]" IE.Visible = True WaitIE Set IEDoc = IE.document 'ici on affecte à notre variable HtmlElemUtilisateur l'élément input de la page html dont l'id est "j_username" Set HtmlElemUtilisateur = IEDoc.getElementById("j_username") 'idem avec l'id "j_password" Set HtmlElemPassword = IEDoc.getElementById("j_password") 'on remplit les champs input correspondants avec des valeurs HtmlElemUtilisateur.Value = "Utilisateur" HtmlElemPassword.Value = "azerty123" 'on affecte à notre variable Valider l'élément link de notre page html ayant pour id "btnAction" Set Valider = IEDoc.Links("btnAction") 'on clic Valider.Click End Sub Sub WaitIE() Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop End Sub
Sache également que l'on peux déclencher une fonction javascript depuis VBA. La syntaxe est :
IEDoc.parentWindow.execScript "NomDeLaFonction;", "javascript"
Après cela, sans élément supplémentaire (extraits du code source de la page html) il sera très difficile de t'aider davantage.
Cordialement,
Franck P
Merci pour ton aide pijaku.
joey_nmuk, j'ai le même problème, tout marche bien sous XP, je passe à Windows 7 et le code bloque au nieau de
IE.visible = true.
"L'instance n'existe pas".
Je continue mes recherches
joey_nmuk, j'ai le même problème, tout marche bien sous XP, je passe à Windows 7 et le code bloque au nieau de
IE.visible = true.
"L'instance n'existe pas".
Je continue mes recherches
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
27 juin 2013 à 15:07
27 juin 2013 à 15:07
Salut,
De rien...
Avant la ligne :
as tu bien ces lignes de code :
Sinon, pour faciliter vos recherches, regardez ce super tuto!!!
De rien...
Avant la ligne :
IE.Visible = True
as tu bien ces lignes de code :
Dim IE As Object Set IE = CreateObject("InternetExplorer.Application")
Sinon, pour faciliter vos recherches, regardez ce super tuto!!!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
28 juin 2013 à 15:37
28 juin 2013 à 15:37
as tu été voir le tutoriel donné précédemment?
joey_nmuk
Messages postés
1
Date d'inscription
lundi 1 juillet 2013
Statut
Membre
Dernière intervention
1 juillet 2013
1 juil. 2013 à 15:18
1 juil. 2013 à 15:18
SAlut,
C'est ce tuto qui m'a fortement inspiré.
C'est ce tuto qui m'a fortement inspiré.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
1 juil. 2013 à 15:33
1 juil. 2013 à 15:33
Salut,
As-tu essayé de remplacer :
par :
Perso, je suis sous W7 avec IE9 et n'ai aucun souci, ni avec l'un, ni avec l'autre, du moment ou les références sont bien cochées.......
As-tu essayé de remplacer :
Dim IE As New InternetExplorer IE.navigate "http://blablabla" IE.Visible = True
par :
Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.navigate "http://blablabla" IE.Visible = True
Perso, je suis sous W7 avec IE9 et n'ai aucun souci, ni avec l'un, ni avec l'autre, du moment ou les références sont bien cochées.......
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
2 juil. 2013 à 15:23
2 juil. 2013 à 15:23
Alors je n'ai pas de solution.
Désolé.
A+
Désolé.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Valéry01
Messages postés
7
Date d'inscription
samedi 1 juin 2013
Statut
Membre
Dernière intervention
15 septembre 2016
4 sept. 2016 à 08:06
4 sept. 2016 à 08:06
Bonjour,
Peut-être une idée de piste à creuser:
Ma macro (avec "fonction IE. ") fonctionne sous :
- XP Excel 2007 IE8
- W7 32 Excel 2007 IE8
- W7 64 Excel 2010 IE11
J'essaie de la faire fonctionner sous W7 64 Excel 2007 IE11 et j'obtiens l'erreur :
Erreur de compilation :
Mécanisme de bibliothèque d'objet non géré
sur :
IEDoc dans:
Set IEDoc = IE.document
bien entendu dans la déclaration j'ai :
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
et sur le PC en question j'ai bien intégré les références : « Microsoft Internet Controls » et « Microsoft HTML Object Library ».
La seule différence c'est Excel 2007 / Excel 2010 ?
En relisant le post une deuxième voir une troisième fois j'ai LA SOLUTION :
sous le pc W7 64 Excel 2007 IE11
j'ai remplacé :
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
par :
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Et ça fonctionne
Merci Pijaku
Désolé je n'ai pas utilisé les balises HTML pour présenter mon message
Peut-être une idée de piste à creuser:
Ma macro (avec "fonction IE. ") fonctionne sous :
- XP Excel 2007 IE8
- W7 32 Excel 2007 IE8
- W7 64 Excel 2010 IE11
J'essaie de la faire fonctionner sous W7 64 Excel 2007 IE11 et j'obtiens l'erreur :
Erreur de compilation :
Mécanisme de bibliothèque d'objet non géré
sur :
IEDoc dans:
Set IEDoc = IE.document
bien entendu dans la déclaration j'ai :
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
et sur le PC en question j'ai bien intégré les références : « Microsoft Internet Controls » et « Microsoft HTML Object Library ».
La seule différence c'est Excel 2007 / Excel 2010 ?
En relisant le post une deuxième voir une troisième fois j'ai LA SOLUTION :
sous le pc W7 64 Excel 2007 IE11
j'ai remplacé :
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
par :
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Et ça fonctionne
Merci Pijaku
Désolé je n'ai pas utilisé les balises HTML pour présenter mon message
31 oct. 2014 à 16:45
3 jours que je me galere avec mon ancien code a mettre au gout de Win7, et que je me farcis tous les forums excel/VBA en vain
You save my life thx!
21 mai 2015 à 10:06