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 :

Manipulation d'Internet Explorer via VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Manipulation d'Internet Explorer via VBA
    Bonjour,

    J'ai beaucoup aimé ce tutoriel, il est extrêmement puissant et facile à mettre en oeuvre !

    J'ai cependant une question sur les déclarations en late binding.

    Pour des raisons de compatibilité du fichier sur plusieurs postes, je souhaite tout déclarer en late binding afin de ne pas avoir à activer les références sur chaque machine ou le fichier sera exécuté.
    J'ai trouvé pour internetexplorer (message ci dessus) et HTMLDocuments qui est dans create object ("htmlfile"), cependant pour HTMLInputElements je ne trouve pas la bonne syntaxe de déclaration.

    Je déclare mes variables "as Object", et ensuite dans le "Set variable = CreateObject("....")"
    Je ne sais quoi mettre entre les guillemets.

    Pourriez vous me renseigner ?

    Merci

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    bendu31, la déclaration en tant qu'object suffit, VBA va se débrouiller pour les transtypages, tu n'as pas besoin de faire une déclaration de type Set ... = CreateObject(...).

    bonne soirée
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    Autre astuce : quand un Click ne déclenche rien, "activer" l'objet juste avant par .Focus peut suffire …


    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Qwazerty Voir le message

    bendu31, la déclaration en tant qu'object suffit, VBA va se débrouiller pour les transtypages, tu n'as pas besoin de faire une déclaration de type Set ... = CreateObject(...).

    Qwaz
    Salut,

    Je viens de tenter sans déclaration Set.
    VBA me renvoi l'erreur "Propriété ou méthode non gérée par l'objet" sur la ligne d'écriture.

    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
     
        Dim IE As Object                 
        Set IE = CreateObject("InternetExplorer.application")
     
        Dim IEDoc As Object
        Set IEDoc = CreateObject("htmlfile")
     
        Dim Input_ISIN_Number As Object
     
        IE.navigate "http://www.abcbourse.com/download/historiques.aspx?f=ex"
        IE.Visible = True
     
        waitIE IE
     
     
        'On point la zone de texte IEDoc.all("name", "index si plusieurs noms")
        Set Input_ISIN_Number = IEDoc.GetElementsByName("ctl00$BodyABC$txtOneSico")
     
        'On écrit le texte qu'on veut placer dedans :
        Input_ISIN_Number.Value = "FR0000045072"
    L'erreur se produit au niveau de l'exécution de la dernière ligne.

    Peut être ai-je loupé une étape ?

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    Le B-A-BA : via la fenêtre des Variables locales, vérifier dans le contenu de la variable objet
    si elle pointe bien sur quelque chose et si elle dispose de la propriété Value

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Alors 2 problème avec ton code :

    Tu ne pointes pas le document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IEDoc = IE.document
    Ensuite lorsque tu cherches ton input, tu utilises GetElementsByName, pourquoi pas mais attention y'a un "s" à "Elements", il te retourne donc un tableau d'objet (voir le tuto)

    Si cela ne résout pas ton problème, merci de créer un sujet propre à ta question pour ne pas surcharger celui-la qui ne conserne que des problème liés au tutoriel. N'hésite pas à m'envoyer un MP si tu vois que tu n'obtiens pas de réponse.

    Bonne fin de journée
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos réponses,


    @Marc-L : Apparemment l'objet Input_ISIN_Number ne pointe sur rien...

    @QWAZERTY
    Alors j'ai essayé de rajouter le fameux "Set IEDoc = IE.document", ça renvoi une erreur.
    Pour le deuxième point, c'est une coquille, j'ai recopié à la main cette portion de code, dans mon éditeur VBA il n'y avait pas le "S".

    J'ai créé un nouveau sujet pour ne pas polluer celui ci sur tes conseils :
    http://www.developpez.net/forums/d14...g/#post8005015


    Merci

Discussions similaires

  1. [Article] Manipulation d'Internet Explorer via VBA
    Par Qwazerty dans le forum Contribuez
    Réponses: 116
    Dernier message: 13/02/2020, 15h47
  2. Manipulation d'Internet Explorer via VBA
    Par pegase33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/04/2018, 09h49
  3. Manipulation d'Internet Explorer via VBA
    Par jll13 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/01/2013, 19h24
  4. probleme Manipulation d'Internet Explorer via VBA
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/03/2012, 20h36

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