Erreur d'execution 70, permission refusée avec execScript

Résolu
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013 - 27 mai 2009 à 11:20
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013 - 27 mai 2009 à 15:31
Bonjour à tous,

J'ai un gros soucis, je dois executer une fonction javascript à partir de VBA, et depuis une semaine je ne trouve pas de solutions. Je voulais executer la fonction en la passant dans l'url de la page internet explorer en faisant:

ie.Navigate (url & "onclick= if(redirectionOnglets(document.forms[0],this)){document.forms[0].marqueSelectionnee.value='onglet.marque.giea';document.forms[0].submit();}")

Sans succès!

Donc j'ai voulu tenter avec le WebBrowser, j'ai donc écris :

Set mapage = ie.Document

mapage.parentWindow.execScript  "onclick= if(redirectionOnglets(document.forms[0],this)){document.forms[0].marqueSelectionnee.value='onglet.marque.giea';document.forms[0].submit();}", "Javascript"

ie.Navigate (url)

Et là j'ai une erreur: "Erreur d'execution '70' Permission refusée".
Que faire?
Merci beaucoup d'avance!

13 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 14:32
non testé, mais faire en gros:


Dim oLink As Object
For Each oLink In IE.Document.getElementsByTagName("a")
If oLink.InnerHTML = "MarqueC" Then
oLink.Click
Exit For
End If
Next oLink
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 15:26
tu attend bien que le document soit exploitable ?

(status COMPLETE)

le pas a pas accorde peut etre suffisemment de temps au webbrowser pour rappatrier la page...
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 11:28
pas clair, pas clair...
quellé étrange URL...

tu peux surement utiliser FireEvent pour déclencher un onClick, et ainsi appeler le script qui va bien.
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 14:00
Bonjour Renfield,
merci de ta réponse.

En fait la page que je veux appeler, elle contient des onglets. et ces onglets, quand on clique dessus, ça déclenche la fonction javascript Onclick pour afficher l'onglet.
Et je veux faire ça à partir de VBA, donc ce que je voulais c'etait recharger la page et lancer onclick, pour que le 2e onglet s'affiche.
ça sera possible avec FireEvent? tu peux me donner la syntaxe?
(je ne suis pas très douée en vba...)

Merci beaucoup!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 14:04
tu peux simplement demander un Click de la chose...

quel est le code HTML de ta page (au moins la partie des onglets) ?

jouer avec FireEvent est parfois nécessaire, pour déclencher le code js qui traine ici ou là et est executé en temps normal (onfocus, onkeydown, etc.)
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 14:24
Voici le code de la page partie onglet:

  
 
    
  
   MarqueA
  
  
  
   [#
    MarqueB
   ]
    
  
  
   [#
    MarqueC
   ]
  
  
  
   
   [#
    MarqueD
   ]
  

J'ai mis de la couleur pour que ce soit plus clair, il y a donc 4 onglet, celui qui est affiché pour l'instant c'est le premier (Marque A), et le code c'est span qqch...
Moi j'aimerai afficher les 3 auutres à la suite avec VBA, pour récupérer le code source généré par la page.

Merci beaucoup!
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 14:49
Merci pour l'info, mais cela ne fonctionne pas malheureusement....

J'ai écris ceci :

 ie.Navigate (url)
 ie.Visible = True

 Dim oLink As Object
    For Each oLink In ie.Document.getElementsByTagName("onglets")
        If oLink.innerHTML Like "MarqueC" Then
            oLink.Click
            Exit For
        End If
    Next oLink

Et j'ai débbugger, en fait on ne rentre pas dans le fort, le curseur passe sur la premiere ligne en rouge, et sort directement... bizarre.

Aurez-tu une idée?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 14:54
pourquoi "onglets"

pas confondre getElementById et getElementsByTagName
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 14:55
CA FONCTIONNE!!!!!!!!!!!
excuse moi, j'avais écris For Each oLink In ie.Document.getElementsByTagName("onglets") aulieu de
For Each oLink In ie.Document.getElementsByTagName("a"), je suis bête!!!!!!!

Mon dieu, les heures que j'ai apssé dessuq tu m'enlèves un arbre du pied!!!!!!
merciiiiiiiiiiiii!
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 14:57
Je viens de voir ton post! poui j'ai confondu les 2 en effet!!!, je re test une deuxième fois! je te tiens au courant si ça plante, mais pour l'instant ça à l'aire de fonctionner!!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 mai 2009 à 14:59
dans mon code, on itère sur chaque lien, et on teste le contenu texte

le test est peut etre pas bon (sauts de lignes etc.)
je te laisse le corriger si besoin, a l'aide d'un Instr, par exemple.

une fois le lien identifié, on lance un click tout bête et on quitte la boucle
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 15:19
Bon j'ai du crier victoire un peu trop vite!
bon c'est un peu bizare, car quand j'execute mon code pas à pas, cela fonctionne parfaitement! mais quand je lance mon code d'un coup cela ne fonctionne pas!

J'ai utilisé des msgbox pour voir ce que contenait oLink.innerHTML, lorsque c'est pas à pas, je vois le texte défilé, lorsque c'est l'execution totale, toute les msgbox sont vides.

tu as une idée du problème?
Merci beaucoup.
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
27 mai 2009 à 15:31
Visiblement, tu as vraiment TOUT COMPRIS!!!!
J'ai ajouter une petite fonction AttendreIE() juste avant de faire le For each, j'ai testé 5 fois, ça fonctionne!
Merci beaucoup pour ton aide Renfield!!!
0