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 :

Se connecter sur un site avec IE en VBA [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Se connecter sur un site avec IE en VBA
    Bonjour, ***************Bonne ANNEE 2019 à tous ******************

    J'aimerais me connecter sur un site intranet.
    J'ai suivi le tuto de qwazerty
    https://qwazerty.developpez.com/tuto...-et-vba-excel/

    J'ai bâti ma requête mais je n'arrive pas à passer les erreurs automations.
    Je suis donc revenu au début et je n'arrive même pas à faire fonctionner l'exemple du tuto

    Je précise que je suis sur IE11

    Si je laisse le waitIE j'ai carrément une erreur de compilation sub ou fonction non définie.

    Si je le commente je passe mais bloque sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IEDoc = IE.document.
    Erreur d'exécution '-2147417878 (80010108)':
    Erreur automation
    J'ai trouvé un post avec ce code mais dans un autre contexte.


    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
     
    Sub RechercheVBAExcel()
    'Déclaration des variables
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
    Dim InputGoogleBouton As HTMLInputElement
     
       'Chargement d'une page Web Google
       IE.navigate "www.google.fr"
     
       'Affichage de la fenêtre IE
       IE.Visible = True
     
       'On attend le chargement complet de la page
    '   WaitIE IE
     
       'On pointe le membre Document
       Set IEDoc = IE.document
     
       'On pointe notre Zone de texte
       Set InputGoogleZoneTexte = IEDoc.all("q")
     
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "VBA Excel"
     
       'On attend la fin de la recherche
      ' WaitIE IE
     
       'On libère les variables
       Set IE = Nothing
       Set IEDoc = Nothing
    End Sub
    J'ai testé quelques sujets mais j'ai le même souci
    J'ai vérifié les librairy bien que perso je n'aime pas les activer car le code doit être utilisable partout.
    https://www.developpez.net/forums/d1...n-ie-document/
    https://www.developpez.net/forums/d1...05-automation/

    Bref je tourne en rond !

    Une idée un conseil ?
    Merci
    Denis

  2. #2
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonsoir,

    Laisse WaitIE en l'état.

    tu as oublié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub WaitIE(IE As InternetExplorer)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until IE.ReadyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub
    Curt

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Tu as raison Curt,

    Je n'avais pas réalisé que waitIE n'était pas une commande

    Je l'ai donc ajouté, mais il me renvoie toujours une erreur automation sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until IE.ReadyState = READYSTATE_COMPLETE
    cette fois c'est -2147023179 (800706b5)':

    en plus ce code utilise des librairies
    je préfèrerais un solution sans.

    Merci
    Denis

  4. #4
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Tu n'aurais pas oublié d'enlevé l'apostrophe du WaitIE ?
    Chez moi ça fonctionne.

    Pour ce qui est de la non-utilisation des librairies, regardes du côté du EARLY et LATE BINDING. Tu sais faire ?

    Curt

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    salut
    en late binding dans un object anonyme et sans variable
    pas de refrences a activer
    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
    Sub RechercheVBAExcel()
     
        With CreateObject("internetexplorer.application")    'creationde l'object internet explorer
            .navigate "www.google.fr"    'Chargement d'une page Web Google
            .Visible = True    'Affichage de la fenêtre IE
             Do: DoEvents: Loop While .readystate <> 4    'On attend le chargement complet de la page
     
            'On pointe notre Zone de texte
            .document.all("q").Value = "VBA EXCEL"
            'appuie sur la touche enter
            With CreateObject("wscript.shell"): .SendKeys "{enter}": End With
            Do: DoEvents: Loop While InStr(.Locationurl, "search") = 0 Or .busy  'gestion de l'attente de redirection url
            With .document
                'annalyse de ta page ici
                '...
                '.....
            End With
     
        End With
    End Sub
    MAIS ENTRE NOUS c'est tellement plus simple d'incure la recherche dans l'url surtout avec google

    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
     
    Sub RechercheVBAExcel()
     
        With CreateObject("internetexplorer.application")    'creationde l'object internet explorer
            .navigate "https://www.google.fr/search?&q=VBA EXCEL"    'Chargement d'une page Web Google
            .Visible = True    'Affichage de la fenêtre IE
              Do: DoEvents: Loop While .readystate <> 4 Or .busy   'On attend le chargement complet de la page
     
            With .document
                'annalyse de ta page ici
                '...
                '.....
            End With
     
        End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Curt et merci Patrick

    Bon je progresse... grâce à vous !

    Le code N1 de Patrick il faut que je fasse "entrée" pour valider la requête
    puis j'arrive sur la page de redirection,
    Cliquez ici si, d'ici quelques secondes, vous n'avez pas été redirigé.
    je clique ici et ça fonctionne.

    Dans le code 2 j'ai directement la page de redirection et je clique ici et ça fonctionne.
    Cliquez ici si, d'ici quelques secondes, vous n'avez pas été redirigé.
    Là je viens de tester sur mon environnement personnel, je vais transposer cela dans mon appli professionnelle tout à l'heure.

    Vous tiens au courant
    encore merci
    Denis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Se connecter sur un site avec Java
    Par Mithandir dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 30/12/2008, 10h35
  2. [MySQL] modification de son compte sur mon site avec requête sql
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/07/2008, 17h56
  3. Réponses: 1
    Dernier message: 14/05/2008, 19h20
  4. Réponses: 2
    Dernier message: 27/04/2007, 13h24
  5. Connection sur un site
    Par dondano dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 13/01/2007, 19h16

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