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

VBA Discussion :

VBA et IE 11: erreur 91 après simulation de click


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut VBA et IE 11: erreur 91 après simulation de click
    Bonjour tout le monde,

    J'ai créé/modifié une macro pour ouvrir une page, renseigner dessus mon identifiant et mot de passe, et simuler le click de validation, ce qui me mène sur une autre page où je où je renseigne une date de début et de fin avant de valider. Le tout me permet d'accéder à une table que je vais importer dans Excel 2010.

    La macro fonctionne lorsque je teste en pas à pas ou si je mets un point d'arrêt au bon endroit, mais j'ai une erreur 91 (Variable objet ou variable de bloc With non définie) si je lance une exécution en un temps.

    J'ai bien mis une boucle d'attente de chargement de la page, j'ai essayé de mettre des Application.wait (jusqu'à 10 secondes) à différents endroits autour du point bloquant, j'ai essayé de mettre un MsgBox pour que l'utilisateur ait la main sur le délai d'attente, mais rien n'y fait.

    Si quelqu'un à une idée de la cause, et encore mieux une solution, j'en serais ravi.

    Le code de ma macro, avec les annotations en lignes 48 et 62:
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Sub ImportSVI()
     
    Dim WkS As Worksheet
    Set WkS = ThisWorkbook.Worksheets("Infos")
     
    Dim Ident As String
    Ident = WkS.Range("B1").Value
     
    Dim ModePass As String
    ModePass = WkS.Range("B2").Value
     
    Dim DateDeb As Date
    DateDeb = WkS.Range("B4").Value
     
    Dim DateFin As Date
    DateFin = WkS.Range("B5").Value
     
    Dim AdresseServeur As String
    AdresseServeur = WkS.Range("B7").Value
     
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
    Dim InputGoogleBouton As HTMLGenericElement 'HTMLInputElement
    Dim ZoneDate As HTMLInputElement
     
    'Chargement de la page
    IE.navigate AdresseServeur
    IE.Visible = True
     
    Do Until Not IE.Busy And IE.readyState = 4
        DoEvents
    Loop
     
    'On pointe le membre Document
    Set IEDoc = IE.document
     
    'Identifiant
    Set InputGoogleZoneTexte = IEDoc.all("NU_CGMADHE")
    InputGoogleZoneTexte.Value = Ident
     
    'Mot de passe
    Set InputGoogleZoneTexte = IEDoc.all("NU_CGMASS")
    InputGoogleZoneTexte.Value = ModePass
     
    'Bouton validation login+pass
    Set InputGoogleBouton = IEDoc.all("B1")
    InputGoogleBouton.Click '*** Si je mets le point d'arrêt sur cette ligne, le reste de la macro fonctionne ***
     
    'Application.Wait (Now + TimeValue("0:00:05"))
     
    Do Until Not IE.Busy And IE.readyState = 4
        DoEvents
    Loop
     
    'Application.Wait (Now + TimeValue("0:00:05"))
     
    Set IEDoc = IE.document 'Je ne sais pas s'il est utile de re-préciser ?
     
    'Date début
    Set ZoneDate = IEDoc.all("date_debut_form")
    ZoneDate.Value = Format(DateDeb, "dd/mm/yyyy") '*** Le débogage me met cette ligne en surbrillance, et ZoneDate=Nothing  ***
     
    'Date fin
    Set ZoneDate = IEDoc.all("date_fin_form")
    ZoneDate.Value = Format(DateFin, "dd/mm/yyyy")
     
    'Bouton validation dates
    Set InputGoogleBouton = IEDoc.all("submit_button")
    InputGoogleBouton.Click
     
    Do Until Not IE.Busy And IE.readyState = 4
        DoEvents
    Loop
     
    'Bouton Détails
    Set InputGoogleBouton = IEDoc.all("button_details_noeud")
    InputGoogleBouton.Click
     
    ' Suite de la macro ...
    Et à tout hasard, le code des deux pages IE concernées:
    La première page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form method="POST">
    <!--webbot bot="Validation" s-display-name="polo" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-minimum-length="11" i-maximum-length="11" -->
    <input type="text" name="NU_CGMADHE" size="20" maxlength="14" value=""?><br>
    <!--webbot bot="Validation" s-display-name="polo" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-minimum-length="11" i-maximum-length="11" -->
    <input type="password" name="NU_CGMASS" size="20" maxlength="16" value=""?><br>
    <input type="submit" value="VALIDATION" name="B1" class="submit" style="font-size: 10pt">
    </form>
    Qui mène à la deuxième page:
    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
    <form method="post" class="nice" action="stat_conjoncturelle.php?sess=5u054jjupokr5083fqnscs40t41430291355&conj=0">
    <fieldset>
    <div class="row">
    <div class="five columns">
    <label>Date de début</label>
    <input type="text" name="date_debut_form" id="date_debut_form" class="input-text" value="" />
    </div>
    <div class="five columns">
    <label>Date de fin</label>
    <input type="text" name="date_fin_form" id="date_fin_form" class="input-text" value="" />
    </div>
    </div>
     
    <div class="row" >;</div>
    <div class="row">
    <input type="submit" class="nice radius button" value="Valider" id="submit_button">
    <input type="hidden" value="" name="hidden_days" jours="" id="hidden_days" value="" />
    </div>
    </fieldset>
    </form>
    Merci d'avance pour votre aide.

  2. #2
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Problème résolu en enlevant la ligne

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

Discussions similaires

  1. [XL-2003] VBA-Pb d'erreur 1004 après avoir défini un nom pour une plage
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2010, 12h40
  2. Erreur 400 après lancement Macro VBA Excel
    Par ananar dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 23/08/2008, 14h33
  3. [VBA-BusinessObject 5.1] erreur Oracle 3667
    Par logica dans le forum Général VBA
    Réponses: 5
    Dernier message: 28/02/2006, 09h25
  4. [VBA-E] Parcourir les lignes filtrées après un filtre auto
    Par leptitdave dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2005, 13h14

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