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 et html une fois allez


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 et html une fois allez
    Bonjour,
    Je pilote un logiciel intranet avec VBA Excel avec le code suivant :
    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
     ' Formulaire
     
        'Remplie les champs nécessaires...
        IE.DOCUMENT.All("NumExp").Value = CodeEctien
        IE.DOCUMENT.All("motDePasse").Value = Pass
        IE.DOCUMENT.All("envoyer").Click                                       'clique sur le bouton...
     
        Do While IE.ReadyState <> 4
        DoEvents
        Loop
     
    IE.navigate "http://www.intranet-ecti.org/asp/Missions/menu.asp" 'new/new.asp"
     
    IE.navigate <a href="http://www.intranet-ecti.org/asp/Missions/New/new.asp" target="_blank">http://www.intranet-ecti.org/asp/Missions/New/new.asp</a>
     
    If IE.DOCUMENT.All("MISS_ETR").value= "MISS_ETR " then IE.DOCUMENT.All("MISS_ETR").click                               'clique sur le bouton
     
       Do While IE.ReadyState <> 4
       DoEvents
       Loop
    … et je plante! --> variable objet ou bloc with non défini

    … et voila le code source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <tr>
            <td colspan="1" class="cellBold"><input type="radio" name="TypeDocument" value="MISS_FR" checked onClick="afficheFraisSelonTypeDocument()">Mission France</td>
            <td colspan="3" class="cellBold"><input type="radio" name="TypeDocument" value="MISS_ETR" onclick="afficheFraisSelonTypeDocument()">Mission Hors de France</td>
    Quelqu'un peut-il m'aider ?
    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    je n'ai pas bien compris ton message et j'ai interprété (peut etre à tort) que tu souhaite manipuler un objet type radio.

    Un exemple qui pilote un bouton radio de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='radio' name='Q1' value='1' />Oui<input type='radio' name='1' value='2' />Non


    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
    Sub piloterRadioBouton()
        'nécessite d'activer la référence Microsoft HTML Objects Library
        'nécessite d'activer la référence Microsoft Internet Controls
        Dim IE As internetExplorer
        Dim maPageHtml As HTMLDocument
        Dim Helem As HTMLElementCollection
     
        Set IE = CreateObject("internetExplorer.Application")
        IE.Visible = True
        IE.navigate "C:\Documents and Settings\laPage.html"
            Do Until IE.readyState = READYSTATE_COMPLETE
            DoEvents
            Loop 'attend la fin du chargement
     
        Set maPageHtml = IE.document
     
        ' getElementsByName("1") est le nom du bouton Radio
        'Item(1) correspond à la 2eme option dans la liste des boutons
        Set Helem = maPageHtml.getElementsByName("1").Item(1)
        Helem.setAttribute "checked", "true"
    End Sub


    bonne soirée
    michel

  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 et html une fois allez
    Bonjour Michel et merci pour ta réponse.
    J'ai pris la commande de ce logiciel pour y ajouter en amont et en aval des éditions (lettres de transmission, ...). J'ai accès, évidemment à ce logiciel, dans la boîte de bénévoles ou je travaille.
    Sur la page où je suis parvenu figurent 2 boutons d'option :
    Mission en France ou Mission à l'étranger.
    Je veux marquer l'une de ces options. Mais pour l'instant je recherche simplement à sélectionner l'un des deux boutons avec VBA.
    Je vais essayer ton code pour voir si ça correspond.
    A +

  4. #4
    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 et HTML
    Salut Michel,
    évidemment ça ne marche pas, je m'étais mal expliqué.
    Le code HTML fonctionne et je ne peux pas le changer. J'essaie simplement d'identifier le nom du second bouton radio pour le sélectionner.
    Sur le code source, on devrait lire normalement que le premier bouton est sélectionné par défaut (ce qui apparait quand on affiche la page), mais je ne vois rien de la sorte (ma connaissance du HTML est rudimentaire).
    J'ai tout de même coché les références que tu m'as indiqué (bien que les commandes pour le mot de passe et le code fonctionnent)
    J'ai essayé cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IE.DOCUMENT.All("Radio. Document").Value = "MISS_ETR " Then IE.DOCUMENT.All("Radio.Document").Value = True
    Mais ça n'est toujours pas le bon objet
    Si tu y vois plus clair...

    Christian

  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 et HTML
    J'ai un peu progressé mais toujours avec le même message.
    Voilà le code :

    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
    Sub Convention()                                                                                             ' Accès au logiciel Convention
    
    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/index.asp"
            'attends que la page soit ouverte
            Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
            Loop
            
    ' Formulaire
    
        'remplit les champs nécessaires...
        IE.DOCUMENT.all("NumExp").Value = CodeEctien
        IE.DOCUMENT.all("motDePasse").Value = Pass
        IE.DOCUMENT.all("envoyer").Click                          'clique sur le bouton...
        
    Do While IE.readyState <> READYSTATE_INTERACTIVE
       DoEvents
    Loop
    
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
    
    IE.navigate "http://www.intranet-ecti.org/asp/Missions/New/new.asp"
    
    Do While IE.readyState <> READYSTATE_INTERACTIVE
                DoEvents
            Loop
    
    With IE.DOCUMENT.all("MISS_ETR")
        If .Value = "MISS_ETR " Then
        .Click                                                                       'clique sur le bouton
        End If
    End With
    
    Do While IE.readyState <> READYSTATE_INTERACTIVE
       DoEvents
    Loop
    
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
    
    End Sub
    Mais toujours le même blocage...

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    Le code HTML fonctionne et je ne peux pas le changer.
    je te montrais simplement un exemple qui permet de manipuler les boutons radios dans une page html...


    bonne soirée
    michel

  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 et HTML
    Eureka,
    Il suffisait d'une toute petite modification pour que ta solution fonctionne.
    Je donne ici le code :

    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
    Sub Convention()                                                                                             ' Accès au logiciel Convention
        Dim maPageHtml As HTMLDocument
        Dim Helem As HTMLElementCollection
        Dim TypeDocument As String
     
    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/index.asp"
            'attends que la page soit ouverte
            Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
            Loop
     
    ' Formulaire
     
        'remplit les champs nécessaires...
        IE.DOCUMENT.all("NumExp").Value = Code
        IE.DOCUMENT.all("motDePasse").Value = Pass
        IE.DOCUMENT.all("envoyer").Click                                                          'clique sur le bouton...
     
    Do While IE.readyState <> READYSTATE_INTERACTIVE
       DoEvents
    Loop
     
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
     
    IE.navigate "http://www.intranet-ecti.org/asp/Missions/New/new.asp"
     
    Set maPageHtml = IE.DOCUMENT
    Do While IE.readyState <> READYSTATE_INTERACTIVE
                DoEvents
            Loop
     
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
     
        ' getElementsByName("1") est le nom du bouton Radio
        'Item(1) correspond à la 2eme option dans la liste des boutons
       Set Helem = maPageHtml.getElementsByName("Nom du Bouton").Item(1)
        Helem.setAttribute "checked", "True"
     
    end sub
    Evidemment la route est encore longue, mais ça fait du bien.
    Merci SilkyRoad

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

Discussions similaires

  1. comme mettre son nom en vba sous access une fois pour toute ?
    Par alucard_xs dans le forum VBA Access
    Réponses: 14
    Dernier message: 25/01/2010, 13h01
  2. Réponses: 7
    Dernier message: 13/08/2008, 13h17
  3. rafraichir une page HTML une seul fois
    Par skillipo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/07/2007, 10h40
  4. Réponses: 2
    Dernier message: 13/10/2006, 12h29
  5. [VBA-Excel] copier plusieurs fois une colonne dans une feuille Excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/08/2006, 19h43

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