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 :

problème pour remplir le champ intranet : erreur d'execution '-2147467259 (80004005)' automation


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut problème pour remplir le champ intranet : erreur d'execution '-2147467259 (80004005)' automation
    Bonjour,

    Je débute en VBA, et après avoir passer deux jours a chercher je bloque toujours.
    Je souhaite créer un fichier qui remplit les informations suivantes : Nom, prénom, service & mail.
    Toute ces infos sont dispos dans l'annuaire interne de la boite qui ce décompose en quatre champs de recherches :
    l'id : txt_Nom qui est la case ou on entre le nom.
    l'id : txt_Prenom pour le prénom.
    l'id : txt_Visa pour le visa
    l'id : txt_Metier pour le métier.
    Plus un menu déroulant permettant de choisir le site avec : id "cmb_SitGeo"

    Pour commencer j'essai déjà d'afficher la page et de renseigner le champ txt_Nom, et là déjà ça bug :

    Voila le script :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Sub RechercheNom()
    '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 piano
       Ie.navigate "http:/xxxx"
     
       '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("txt_Nom")
     
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "nomxxx"
     
       'On pointe notre bouton
        Set InputGoogleBouton = IEDoc.all("btn_Filter")
     
        'On simule un clic
        InputGoogleBouton.Click
     
       'On attend la fin de la recherche
       WaitIE Ie
     
       'On libère les variables
       Set Ie = Nothing
       Set IEDoc = Nothing
     
    End Sub
    '-------------------------------------------------------------------------------
    Sub WaitIE(Ie As InternetExplorer)
     
        'On boucle tant que la page n'est pas totalement chargée
        Do: DoEvents: Loop While Ie.Busy Or Ie.readyState <> 4
    Si quelqu'un peux m'aider merci d'avance.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Cela va prendre une boule de cristal.

    Si tu vas là, tu vas voir ceci:

    -2147467259 (80004005) Erreur non spécifiée.
    Ou bien, tu peux éplucher les 10800 réponses

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Fais un point d'arrêt sur la ligne 19 et regarde ce que tu as (variables, ta page...)

    Si tout est bon, fais le pas à pas ensuite à l'aide de F8

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour mercatog,

    Merci pour ton retour il semble que l'erreur ce produit effectivement au niveau de la ligne 19, le IEDoc ne serait pas bon ?

    Cordialement.

  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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    bonjour
    supprime le ie.busy du wait

    et ajoute un teste avec "isobject"sur ton premier control html (input)
    en effet il semblerait que le busy tourne en rond depuis la version ie10 selon les pages web
    c'est pour cela que iedoc est null

  6. #6
    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 674
    Points
    18 674
    Par défaut

    Bonjour,

    constaté aussi avec certaines pages Web quelque soit la version d'IE (9, 10 ou 11) avec une connexion rapide
    le ReadyState ne passe jamais à 4 ou alors après un temps délirant … (Abcbourse entre autres)

    Mais là si le code arrive bien à la ligne n°19, ce n'est pas un souci de Busy ni de ReadyState

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  7. #7
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    bonjour marc
    si si!!!!
    j'ai des pages web qui avec un wait sur ie.busy tourne en rond comme si la page était toujours en travail ou dure des plombes

    parfois elle passe mais j'ai un document NULL et j'ai bien une erreur non spécifiée

    va savoir toi

    c'est pour cela que je ne l'utilise plus je préfère ta méthode sur le "isobject" plus probant

    on peu même le faire sur le document( if isobject(ie.document))

    voila un sujet a traiter hein!!! dans un futur débat

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour patrick,

    Merci pour ta réponse, pour ie.busy, j'ai remplacer par contre je vois pas comment déclaré le "isobjet" en control, j'ai une erreur automotion à la place de l'erreur précédente et le texte ne s’inscrit toujours pas dans la case : "txt_Nom".
    Voici le code de la zone de texte que je souhaite remplir :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT name=txt_Nom title="Saisir au moins un caractère" class=ui-autocomplete-input id=txt_Nom role=textbox aria-haspopup=true style="WIDTH: 165px" aria-autocomplete=list type=text maxLength=50 jQuery171008915050488326664="8" placeholder="Saisir au moins un caractère" autocomplete="off">

    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
    36
    37
    38
    39
    40
    41
    42
    Sub RechercheNom()
    'Déclaration des variables
    Dim Ie As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputZoneTexte As HTMLInputElement
    Dim InputBouton As HTMLInputElement
     
       'Chargement d'une page Web piano
       Ie.navigate "http://xxx/FrmAnnuaire"
     
       '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 InputZoneTexte = IEDoc.all("txt_Nom").Value = "XXX"
     
       'On pointe notre bouton
        Set InputBouton = IEDoc.all("btn_Filter")
     
        'On simule un clic
        InputBouton.Click
     
       'On attend la fin de la recherche
       WaitIE Ie
     
       'On libère les variables
       Set Ie = Nothing
       Set IEDoc = Nothing
     
    End Sub
    Sub WaitIE(Ie As InternetExplorer)
     
        'On boucle tant que la page n'est pas totalement chargée
        Do: DoEvents: Loop Until Ie.readyState = 4
     
    End Sub
    Merci d'avance

  9. #9
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    test cela en mettant ton url valide et regarde les commentaires et dis moi quel message tu a a la fin si il y a erreur

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub RechercheNom()
    'Déclaration des variables
        Dim Ie As Object, InputZoneTexte As Object, InputBouton As Object, obj As String, T
        Set Ie = CreateObject("internetexplorer.application")
        'Chargement d'une page Web piano
        Ie.navigate "http://xxx/FrmAnnuaire"
        'Affichage de la fenêtre IE
        Ie.Visible = True
        'On attend le chargement complet de la page
        Do: DoEvents: Loop While Ie.readystate <> 4 ' si ca plombe toujour essaie avec 3 a la place de 4
        'securité 1
        obj = " du document"
        T = Timer
        Do: DoEvents: If Timer - T > 15 Then GoTo gest_erreur: Loop Until IsObject(Ie.document) 'on attend que le document existe visiblement ton soucis est la
        'On pointe le membre Document
        With Ie.document
         'securité2
     
            'On pointe notre Zone de texte
            'Set InputZoneTexte = .all("txt_Nom").Value = "XXX"    ' qu'est ce que c'est ca!!!!!!!!!!!!!!!!!!!!! on est pas en vb.net ici on est en vba!!!!!!
         obj = " de l 'input"
            'on pointe d'abord
     
             Do: DoEvents: If Timer - T > 15 Then GoTo gest_erreur: Loop Until IsObject(.all("txt_Nom"))
     
            Set InputZoneTexte = .all("txt_Nom")
            'ou Set InputZoneTexte =getelementsbyname("txt_Nom")
     
            'puis ensuite on alimente hein !!!!!!!!!!!!!!!
            InputZoneTexte.Value = "XXX"
     
            'On pointe notre bouton
            Set InputBouton = .all("btn_Filter")
            'On simule un clic
            InputBouton.Click
        End With
        'On attend la fin de la recherche
        Do: DoEvents: Loop While Ie.readystate <> 4
        'On libère les variables
        Set Ie = Nothing
        Set IEDoc = Nothing
    Exit Sub
    gest_erreur:
    MsgBox "l'attente " & obj & " a durer plus de 11 secondes il y a un soucis a ce niveau "
    End Sub

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    re

    il bloque en ligne 14 avec l'erreur "Boucle sans DO"

    Merci

  11. #11
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    tu a bien mis ton url au moins hein!!!!

  12. #12
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut RE
    OK ET CELUI LA
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub RechercheNom()
    'Déclaration des variables
        Dim Ie As Object, InputZoneTexte As Object, InputBouton As Object, obj As String, T
        Set Ie = CreateObject("internetexplorer.application")
        'Chargement d'une page Web piano
        Ie.navigate "TON URL ICI"
        'Affichage de la fenêtre IE
        Ie.Visible = True
        'On attend le chargement complet de la page
        Do: DoEvents: Loop While Ie.readystate <> 4 ' si ca plombe toujour essaie avec 3 a la place de 4
        'securité 1
        obj = " du document"
        T = Timer
        Do: DoEvents
        If Timer - T > 15 Then GoTo gest_erreur
        Loop Until IsObject(Ie.document) 'on attend que le document existe visiblement ton soucis est la
        'On pointe le membre Document
        With Ie.document
         'securité2
     
            'On pointe notre Zone de texte
            'Set InputZoneTexte = .all("txt_Nom").Value = "XXX"    ' qu'est ce que c'est ca!!!!!!!!!!!!!!!!!!!!! on est pas en vb.net ici on est en vba!!!!!!
         obj = " de l 'input"
            'on pointe d'abord
     
             Do: DoEvents
             If Timer - T > 15 Then GoTo gest_erreur
             Loop Until IsObject(.all("txt_Nom"))
     
            Set InputZoneTexte = .all("txt_Nom")
            'ou Set InputZoneTexte =getelementsbyname("txt_Nom")
     
            'puis ensuite on alimente hein !!!!!!!!!!!!!!!
            InputZoneTexte.Value = "XXX"
     
            'On pointe notre bouton
            Set InputBouton = .all("btn_Filter")
            'On simule un clic
            InputBouton.Click
        End With
        'On attend la fin de la recherche
        Do: DoEvents: Loop While Ie.readystate <> 4
        'On libère les variables
        Set Ie = Nothing
        Set IEDoc = Nothing
    Exit Sub
    gest_erreur:
    MsgBox "l'attente " & obj & " a durer plus de 11 secondes il y a un soucis a ce niveau "
    End Sub

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    re patrick,

    Là j'ai Erreur d’exécution '-2147417848 (80010108)' :
    Erreur Automation
    L'objet invoqué s'est déconnecté de ses clients.

    Merci.

  14. #14
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    et oui tu Works avec IE 11 n'est ce pas ????

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    re,

    Oui exact.

  16. #16
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    fait une gestion de tache
    arrête tout les processus "ieexplorer"
    ferme la gestion de tache
    et relance le dernier exemple
    si ca continu il faudra voir si ton intranet n'a pas une protection antirobot au quel cas la c'est walouh!!!!!se sera impossible ou trop complexe a faire sauter

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    re, erreur suivante :
    Nom : erreur.jpg
Affichages : 815
Taille : 21,8 Ko

    Du coup je suppose que c'est protégé grrr....

    Penses-tu que si j'utilise l'adresse web en remplacent les champs je pourrais avoir le résultat voulu ?

    adresse de base :

    http://XXX/Annuaire/FrmAnnuaire

    http://XXX/Annuaire/FrmAnnuaire?txt_...32&btn_Filter=

    pour afficher la page avec les résultats il faut que je rentre une valeur après le txt_nom= ou le visa ou ....

    Le résultat de la recherche donne une ligne de résultat sur lequel il faudrait cliqué pour accéder au infos que je veux extraire.

    Penses-tu qu'avec la protection qu'il y a sur l'intranet cela reste possible, vu que la page s'ouvre ????

    Merci.

  18. #18
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    si les arguments sont acceptés dans l'url alors oui c'est même mieux car il n'est pas besoins de gérer les Object (htmlelement)

    après je suppose quand même que le bouton doit être cliqué je sais pas

    sans avoir la possibilité de faire les essais je ne peut aller plus loin

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/08/2012, 12h33
  2. Petit probléme pour faire un message d'erreur
    Par mygwel dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 16/05/2006, 17h32
  3. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 14h56
  4. [VBA-Excel]Problème pour remplir une listview
    Par Le Djé dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/01/2006, 16h27
  5. [MFC] Problèmes pour remplir unecombobox
    Par tealc5 dans le forum MFC
    Réponses: 7
    Dernier message: 01/01/2006, 17h35

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