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 :

Variable objet ou variable de bloc With non définie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut Variable objet ou variable de bloc With non définie
    Bonsoir à tous,
    J'ai fait le code suivant avec pour but de remplir automatiquement le champ d'un formulaire dans une page Internet explorer puis lancer un clic automatique du bouton "OK"
    Mais je reçois le message d'erreur suivant : "Variable objet ou variable de bloc With non définie"

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       Dim IE As InternetExplorer
        Dim IEDoc As HTMLDocument
        Dim InputPart As HTMLInputElement
        Dim GoBnt AS HTMLInputElement
     
        Set InputPart = IEDoc.all("part")
        'j'attribue un contenu au champ
        InputPart.Value ="Texte"
     
        Set GoBnt = IEDoc.all("btn")
        'j'exécute le submit
        GoBnt.click


    NB: J'ai coché au préalable dans Outils/Références : "Microsoft HTML Object Library" et "Microsoft Internet Controls"

    Merci

  2. #2
    Expert éminent 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
    Par défaut
    ça c'est tout ton code?

  3. #3
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,
    Essaie peut être comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim IEDoc As MSHTML.HTMLDocument
    Dim InputPart As MSHTML.HTMLInputElement
    Dim GoBnt AS MSHTML.HTMLInputElement

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Je pense qu'il manque un Set pour IEDoc
    Il ne doit pas être reconnu ici...

    Set InputPart = IEDoc.all("part")

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    En fait voici tout le code (le script permet de se connecter automatiquement à un compte sur le site avant de avant de remplir un champ)
    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 connexion()
     
        Dim IE As New InternetExplorer
        Dim IEDoc As HTMLDocument
        Dim partInput As HTMLInputElement
        Dim goBtn As HTMLButtonElement
        Dim cost As String
        Dim url As String
     
        'Set IE = CreateObject("InternetExplorer.application")
        IE.Visible = True
        url = "http://www.monurl.com"
        IE.Navigate (url)
     
         ' attente de fin de chargement
        Do Until IE.ReadyState = 4
             DoEvents
         Loop
     
        Set IEDoc = IE.document
     
    '''''''''''''''''''''''''''
         'login
         Set user = IEDoc.all("user_login")
          user.Value = "login" 
     
         'password
         Set Password = IEDoc.all("user_mdp")
          Password.Value = "mdp" 
     
         'connexion
         Set login = IEDoc.all("OkLogin")
          login.Click
     
         Do Until IE.ReadyState = 4 
             DoEvents
         Loop
     
        Set partInput = IEDoc.all("part")
            partInput.Value = "Texte"
     
         Set goBtn = IEDoc.all("btn")
            goBtn.Click
     
    End Sub
    le problème est que dès que la connexion au compte est établie, l'url est modifié et le script apparemment n'arrive pas comprendre cela et a tendance à chercher mes éléments HTML sur l'url de départ. c'est ce que je pense mais je n'arrive pas à résoudre le problème

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Teste un petit timer à la main des fois le readystate déconne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub wait3secs()
    PauseTime = 3 ' Set duration in seconds
    Start = Timer ' Set start time.
    Do While Timer < Start + PauseTime
    DoEvents ' Yield to other processes.
    Loop
    End Sub
    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
    Dim url As String
     
        'Set IE = CreateObject("InternetExplorer.application")
        IE.Visible = True
        url = "http://www.monurl.com"
        IE.Navigate (url)
     
         ' attente de fin de chargement
        Do Until IE.ReadyState = 4
             DoEvents
         Loop
     
    call wait3secs
     
        Set IEDoc = IE.document

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    Merci pour ta réponse. Mais le problème reste posé.

  8. #8
    Expert éminent 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
    Par défaut
    Si tu postais ton code en entier, tu auras des réponses précises

Discussions similaires

  1. Variable objet ou variable bloc with non définie
    Par tarbala dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/05/2008, 12h19
  2. Variable objet ou variable de bloc With non définie
    Par sl1980 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2007, 19h15
  3. Réponses: 11
    Dernier message: 12/06/2007, 09h26
  4. Variable objet ou variable d'un bloc With non définie.
    Par paradeofphp dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/05/2007, 20h41
  5. Réponses: 13
    Dernier message: 01/06/2006, 17h20

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