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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 395
    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 395
    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 395
    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 395
    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...

+ 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