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 :

Remplir formulaire sur Internet Explorer sur page déjà ouverte.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 15
    Points : 23
    Points
    23
    Par défaut Remplir formulaire sur Internet Explorer sur page déjà ouverte.
    bonjour,

    J'essaye depuis des heures de trouver comment remplir des champs de formulaire sans ouvrir une nouvelle page web.

    Le code dont je suis parti (http://qwazerty.developpez.com/tutoriels/vba/ie-et-vba-excel) ouvre une page Internet. Le code fonctionne dans ce cadre là.

    Mais la page que je souhaite traiter est déjà ouverte (une partie des données est entrée manuellement). Je n'arrive pas à trouver le moyen d'arriver sur la fenêtre existante et non pas qu'une nouvelle fenêtre s'ouvre où ce qui est entré manuellement ne se retrouverait très probablement pas.

    Que faudrait-il modifier ?

    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
     
    Sub FormulaireDC()
    '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 
        IE.Navigate "http://www.xxx"
     
        '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("labels-3-catno")
     
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputGoogleZoneTexte.Value = "Test"
     
        'On pointe notre bouton (laissé provisoirement mais pas besoin de clic bouton)
        Set InputGoogleBouton = IEDoc.all("btnG")
     
        '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
    Bonne soirée.

  2. #2
    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
    J'étais dans un cas similaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim winShell As New ShellWindows
    Dim IE As InternetExplorer
    Const stURL As String = "http://www.xxx"
     
    For Each IE In winShell
         If IE.LocationURL = stURL Then Exit For
    Next IE
    If Not IE Is Nothing Then
     
    'Ton code avec IE instancié
    End If
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 15
    Points : 23
    Points
    23
    Par défaut
    Bonsoir,

    Super, ça fonctionne nickel.

    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
     
    Sub FormulaireDC()
     
    'Déclaration des variables
    Dim winShell As New ShellWindows
    Dim IE As InternetExplorer
    Const stURL As String = "http://www.xxx"
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
     
    For Each IE In winShell
         If IE.LocationURL = stURL Then Exit For
    Next IE
     
    If Not IE Is Nothing Then
     
        'On pointe le membre Document
        Set IEDoc = IE.document
     
        'On pointe notre Zone de texte
        Set InputGoogleZoneTexte = IEDoc.all("labels-3-catno")
     
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputGoogleZoneTexte.Value = "test"
     
        End If
     
    'On libère les variables
        Set IE = Nothing
        Set IEDoc = Nothing
     
    End Sub
    Merci.

    Je vais pouvoir passer aux étapes suivantes !

    Cordialement.

  4. #4
    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
    En late binding
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim winShell As Object, IE As Object
    Const stURL As String = "http://www.xxx"
     
    Set winShell = CreateObject("Shell.Application")
     
    For Each IE In winShell.Windows
        If IE.LocationURL = stURL Then Exit For
    Next IE
    If Not IE Is Nothing Then
     
        'Ton code avec IE instancié
    End If
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. Page sous trouvé sur internet explorer uniquement.
    Par cisqo dans le forum Débuter
    Réponses: 3
    Dernier message: 07/10/2012, 14h24
  2. Internet Explorer piloter page déjà ouverte?
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/08/2010, 08h48
  3. Formulaire inutilisable sur Internet Explorer
    Par Deciprog dans le forum Débuter
    Réponses: 2
    Dernier message: 04/01/2010, 22h32
  4. lien marche sur internet explorer et non sur autre
    Par xman_genius dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2006, 18h11
  5. EXTENSIONS XML, XSL, XSLT, sur internet explorer 6 pack 2
    Par superjeanpi dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 08/12/2004, 12h11

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