IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur 70 "Permission refusée", frame et navigation sur page HTML


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut Erreur 70 "Permission refusée", frame et navigation sur page HTML
    Bonjour,

    Après avoir un peu cherché, je n'ai pas trouvé mon bonheur car je n'ai rien trouvé qui traite de ces 3 sujets en même temps.

    BESOIN : je souhaite accéder à des éléments d'une page web, ces éléments étant placés dans une FRAME, elle-même incluse dans une FRAMESET incluse dans une première FRAMESET
    ==> l'inspection du code source indique donc "html>frameset1> frameset2>frame>mes_éléments_que_je_veux_voir" (je fourni peu d'info car cette page web appartient au client pour qui je bosse)

    CODE UTILISÉ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Dim oNav As SHDocVw.InternetExplorerMedium
    Dim oDoc As MSHTML.HTMLDocument
    Dim objFrame As HTMLFrameElement
    Dim obj_FrameDoc As HTMLDocument
    Dim aElement As IHTMLElement
     
    '---Connection au site
        Set oNav = New SHDocVw.InternetExplorerMedium     
        oNav.Visible = True
        oNav.navigate Sheets(sGlob_FeuillePrincipale).Range(sGlob_cell_lienPRESTA).Value
     
    '---On attent que la page s'affiche en temporisant
        If WaitIE(oNav, 10) Then
    '       ' 10s écoulées et page non chargée
           MsgBox "Time out!"
        Else
    '        'Page chargée, on continue
            Set oDoc = oNav.document
        End If
     
    '---Parcours des éléments de la page
        For Each aElement In oDoc.getElementsByTagName("FRAME")  
     
            'Récupération du FRAME où sont situés les éléments désirés
    '        If aElement.Name = "contenu" Then
     
                'Récupération de la FRAME dans une variable adéquate
                Set objFrame = aElement
     
                'Récupération du contenu de la FRAME
                Set obj_FrameDoc = objFrame.contentDocument
     
                'Parcours des liens dans la FRAME
                For Each aElement2 In obj_FrameDoc.getElementsByTagName("A")
    PROBLÈME : le problème se pose lors de l'exécution de la ligne 32 et j'obtiens un "Erreur d'exécution '70' : Permission refusée"

    ACTIONS FAITES : j'ai tenté d'enlever/remettre la référence "Microsoft Internet Controls" comme suggéré par un site, de rajouter une temporisation pensant que la page n'était pas complétement chargée, accéder directement aux éléments sans passer par des boucles,... en vain.
    ==> ce bout de code marche très bien pour d'autre pages web internes (la seule différence étant, bien entendu, le lien passé à l'instruction de la ligne 11)
    ==> l'inspection de code, quand j'utilise EDGE semble désactivé (en appuyant sur F12, j'obtiens un message disant "DevTools a été déconnecté de la page"
    ==> en plaçant des espions, je vois à plusieurs endroits le "<Permission refusée>" de la colonne 'Valeur'
    ==> en mettant un "debug.print oDoc.Body.innerHTML" en ligne 21, je ne vois pas toute ma page mais seulement le contenu du frameset1 et ce, seulement pour les FRAME et FRAMESET qu'il contient

    PISTES : pour le moment je sèche complétement, ainsi que deux ou trois collègues.
    ==> est-ce un problème lié à mon développement ? Si oui, je suis preneur de tout avis sur la question
    ==> est-ce lié à une règle de sécurité sur le site intranet empêchant tout robot ou autre d'agir (si cela existe en matière de sécurité) ? Si oui, je ne pourrai pas faire grand chose

    N'hésitez pas à poser des questions, j'essaierai d'y répondre dans la mesure du possible.

    D'avance merci pour ne serait-ce qu'avoir lu ce message.

    Cordialement,
    Boris

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 249
    Par défaut
    hello,
    question bête : est-ce que l'accès à la page fonctionne en utilisant normalement un navigateur ? si oui est-ce que cela fonctionne aussi en utilisant internet explorer (pas edge) comme navigateur car ton code utilise internet explorer ?
    Sinon il y a aussi en VBA la possibilité d'utiliser Selenium Basic (voir ici). Cela permet de piloter un navigateur comme chrome par exemple.
    Pour l'erreur peut-être une piste ici
    Accessing and then modifying webpages in iframes of other websites is known as Cross-site scripting or XSS and it is a technique used by malicious hackers to prey on unsuspecting victims.
    A policy by the name of "Same-Origin Policy" is implemented by browser makers to prevent such behaviour and arbitrary execution of JS code.
    This error can be prevented by hosting the parent document and the document in the iframe in the same domain and subdomain, and making sure that the documents are loaded using the same protocol.
    Ami calmant, J.P

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut
    Bonjour JP,

    Pour les autres navigateurs :
    • CHROME : le site, qui est du genre plutôt "intranet", n'est pas prévu pour et est purement bloqué avec ce navigateur
    • IE : l'inspection de la page web marche et indique bien le contenu HTML proprement et dans son intégralité
    • EDGE : l'inspection de la page web ne fonctionne pas car "désactivée" sur cette page et quand j'affiche la source, je vois plein de scripts, de liens, et je viens de voir que je ne vois pas les FRAME visibles sur IE quand bien même un des liens que je souhaite voir y est. Plutôt curieux...


    Merci pour les pistes, je vais creuser cela dès que j'aurai un peu de temps et voir si Sélénium peut être utiliser sur Edge...

    Bien cordialement,
    Boris

Discussions similaires

  1. Erreur script VBS - Permission refusée
    Par chtitgus dans le forum VBScript
    Réponses: 1
    Dernier message: 18/11/2015, 21h13
  2. ERREUR D’EXÉCUTION 70 : Permission refusée
    Par GOLDINGMAROC dans le forum Excel
    Réponses: 1
    Dernier message: 16/01/2014, 13h09
  3. Erreur : Permission refusée
    Par Arola78 dans le forum Access
    Réponses: 2
    Dernier message: 30/10/2006, 10h40
  4. [VB6] CopyFolder : erreur -> permission refusée
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 30/08/2006, 16h18
  5. postgres-php erreur unterminated quoted
    Par peppena dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/05/2006, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo