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 :

vba, html et submit


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut vba, html et submit
    Bonjour,
    Je pilote un programme intranet avec VBA Excel.
    Après avoir renseigné les différents paramètres. J'arrive à un bouton lancer qui va sélectionner les articles correspondants aux données entrées.

    Voici le code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    </tr><tr>
     <td colspan="8" align="center">
       <input type="image" src="../../../../img/bt_lancer.gif">
     </td>
    </tr>
    </table>
    </form>
    <br>
    <hr>
    </body>
    </html>
    Et voici une des versions de mon module chargé de traiter le problème :

    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
    81
    82
    83
    84
    85
    86
    Option Explicit
     
    Private Declare Function URLDownloadToCacheFile Lib "urlmon" Alias "URLDownloadToCacheFileA" (ByVal lpUnkcaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwBufLength As Long, ByVal dwReserved As Long, ByVal IBindStatusCallback As Long) As Long
     
     
    Private Function DownloadFile(URL As String) As String
        Dim lngRetVal As Long
        Dim sLocalFilename As String
        'procedure de telechargement de l'image (trouvé sur le net???)
        '(pour eviter d'utiliser un contrôle Inet...)
        sLocalFilename = Space(300)
        lngRetVal = URLDownloadToCacheFile(0, URL, sLocalFilename, Len(sLocalFilename), 0, 0)
     
        If lngRetVal = 0 Then
            DownloadFile = Trim(sLocalFilename)
        End If
    End Function
     
    Function RndStr(nb As Integer) As String
    Dim I As Integer
    'renvoie une chaine de nb caracteres aléatoires...(de a à z)
    RndStr = ""
    For I = 1 To nb
    RndStr = RndStr + Chr(CInt(Rnd * 25) + 97)
    Next I
     
    End Function
     
    Public Sub ExpertResearch()                                                                         ' Accès au programme Experts
        Dim maPageHtml As HTMLDocument
        Dim Helem As HTMLElementCollection
        Dim TypeDocument As String
        Dim Deleg As Object
        Dim HTMLDelegElement(100) As HTMLElementCollection
        Dim htmlDoc As Object
        Dim IESubmit As HTMLFormElement
        Dim IECtrl As HTMLFormElement
        Dim IE As Object
        Dim sLocalFilename As String
        Const READYSTATE_INTERACTIVE = 3
        Const READYSTATE_COMPLETE = 4
     
            'crée un objet internet Explorer
            Set IE = CreateObject("InternetExplorer.Application")
            'le masque
            IE.Visible = True
     
            'ouvre la page d'enregistrement de identification Ecti
            IE.navigate "http://www.intranet-ecti.org/asp/Experts/ExpertsActifs/selectionGenerale/filtre.asp"
            'attends que la page soit ouverte
            Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
            Loop
     
            Do While IE.readyState <> READYSTATE_COMPLETE
            DoEvents
            Loop
     
    ' Formulaire
     
        'remplit les champs nécessaires...
        IE.DOCUMENT.all("AnNai").Value = "1940"
        IE.DOCUMENT.all("M10").Value = "COMPTABLE"
        IE.DOCUMENT.all("M11").Value = "GESTION"
        IE.DOCUMENT.all("M12").Value = "AUDIT"
        IE.DOCUMENT.all("Dep1").Value = "75"
        IE.DOCUMENT.all("Dep2").Value = "77"
        IE.DOCUMENT.all("Dep3").Value = "78"
        IE.DOCUMENT.all("Dep4").Value = "91"
        IE.DOCUMENT.all("Dep5").Value = "92"
        IE.DOCUMENT.all("Dep6").Value = "93"
        IE.DOCUMENT.all("Dep7").Value = "94"
        IE.DOCUMENT.all("Dep8").Value = "95"
     
    Do While IE.readyState <> READYSTATE_INTERACTIVE
       <souligne><gras>DoEvents</gras></souligne>
    Loop
    '
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
     
    Set IESubmit = htmlDoc.forms(0)
    IESubmit.submit
     
    End Sub
    Je perds la main et quand je fais CTRL + Pause, le curseur est sur le do events souligné.
    Si quelqu'un peut me sortir du pétrin...
    Silky Road m'a déjà aidé sur ce programme ...
    Merci.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Epamimondas,

    suggestion d'un pure néophyte en html ...

    Si tu prends en debug l'instruction qui précède ton doevents sans fin,
    à savoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Do While IE.readyState <> READYSTATE_INTERACTIVE
    qu'est ce que tu obtiens dans IE.readystate ?

    A propos t'as encore oublié les balises code.
    Pan pan cul cul.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut VBA,HTML et Submit
    Mille excuses pour la balise.
    j'ai mis un F9 sur l'instruction précédent DoEvents et, à coup de F8, j'ai une boucle sans fin.
    Je la mets en commentaires et le curseur passe sur la seconde boucle pour s'arrêter sur set IESubmit en déclarant une erreur 91 - variable objet ... non définie.
    J'ai rajouté deux boucles après ... pareil
    A chaque fois la page IE se charge avec les paramètres choisis (M1,Dep,...)
    A+

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Oui mais quand tu es en debug sur Doevents, que vaut IE.readyState quand tu passe ton curseur sur le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Do While IE.readyState <> READYSTATE_INTERACTIVE
    (c'était ma question tidju )

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut VBA,HTML et Submit
    Nada!
    READYSTATE_INTERACTIVE est bien à 3 mais le curseur n'affiche rien sur IE.readystate et la page est la (comme Ivanovic). Mais si je clique sur lancer j'aboutis à un erreur.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tout béotien que je sois pour ce qui concerne les communications avec internet, si tu as une erreur de variable non déclarée sur IESubmit, je pense plutôt que l'erreur est sur htmlDoc qui, bien que déclaré en tant qu'objet, n'est pas instancié. A quoi correspond cet objet ?
    A tout hasard...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut vba, html et submit
    Bien vu ouskel'n'or,
    c'est une redondance par rapport à MapageHTML qui dit bien ce que ça veut dire. Mais ça ne résoud pas le problème.
    A +

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut vba, html et submit
    Je crois avoir progressé.
    En fait, quand je suis sur la page web, et après avoir renseigné le formulaire, il me suffit de faire "entrée" et la page suivante s'affiche. Je crois comprendre qu'il faudrait, dans le programme vba, simuler ce retour charriot.
    Comment ?
    Je cherche en mettant dans form(0) un code ASCII
    Si vous avez quelques lumières...
    A +

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu ajoutes la ligneBonne journée

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut VBA,HTML et Submit
    Helas Menelas,
    le send keys ne va pas sur ma pageweb, c'est pourquoi j'essaie le submit mais le curseur affiche "nothing" quand j'essaie de transférer (set) sur form(13).
    Je cherche ...

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai lu, il y a peu de jours que sur le web, le caractère Entrée était effectivement différent. Une recherche sur ce forum, peut-être... Par contre, comme c'était noyé dans une discussion, je ne sais pas avec quel mot clé rechercher.
    Je jète un oeil mais peut-être auras-tu plus de chances que moi...

    Regarde déjà ici http://www.developpez.net/forums/sho...09#post3177809, tu as la méthode d'utilisation de submit.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Par défaut vba, html et submit
    J'étais en communication evec LedZepp. j'avais emprunté et adapté son code source sur le pilotage d'un programme web.
    Apparemment mon programme marche chez lui.
    Nous sommes tombé en convergence sur une solution de remplacement qui consiste à utiliser ie.navigate pour transporter les paramètres du formulaire et accéder à la page suivante.
    Ca marche!
    J'ai trouvé la méthode de LedZepp assez sioux, parce qu'il a testé mon sub sans avoir mes codes d'authentification.
    On peut considérer ce problème comme résolu, mais je reviendrai si je peux revenir à la solution précédente, ça peut toujours servir à quelqu'un.
    Merci pour l'aide apportée.

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

Discussions similaires

  1. [XL-2010] VBA HTML submit form
    Par JFGrenier dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2014, 00h19
  2. [HTML] Bouton submit en lien web
    Par letroncheur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 12/08/2006, 19h27
  3. [HTML] Lien submit sans input de type submit
    Par escafr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/11/2005, 10h57
  4. [HTML]bouton submit et touche "entree" du clavier
    Par cameles dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/09/2005, 03h27
  5. [html] bouton submit
    Par niglo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/05/2005, 08h27

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