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 :

Suivre lien hypertexte sur page IE suite à une connexion [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Suivre lien hypertexte sur page IE suite à une connexion
    Bonjour à tous,

    Après plusieures recherches infructueuses je me lance à poster mon problème en éspèrant que quelqu'un pourras y répondre.

    Depuis un Userform j'ouvre une page internet explorer et me dirige sur un site, je dois me connecter puis une page se charge avec un lien hypertexte, j'usqu'ici pas de problème, j'arrive à me connecter.

    Là ou je bloque c'est que ce lien hypertexte est contenu dans un tableau de la page IE et que ce lien n'est jamais identique mais toujours à la même place dans le tableau, à savoir la deuxième cellule depuis la gauche sur la première ligne, donc je peut à la rigueure avoir l'ID de son emplacement.

    Je ne parviens pas à faire selectionner ce lien et à l'activer grâce à vba pour que cela me redirige sur la prochaine page.

    Merci d'ores et déjà à tous ceux qui prendront le temps de me répondre !

    Voici mon bout de code jusqu'à l'ouverture de la page contenant ce lien :

    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
     
    Sub importer()
     
    On Error GoTo erreur:
     
    Const READYSTATE_COMPLETE = 4
    'Dim IE
    Dim adresse As String
    Dim elementHtml As Object
    Set IE = CreateObject("internetExplorer.Application") 'ouvre internet explorer
    IE.Visible = True
    With IE
    .navigate "http://bla bla.do" 'va sur la page du site
    Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu’à ce que la page soit chargée
    DoEvents
    Loop
    End With
    Set elementHtml = IE.document.getElementById("j_username") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1474.Value 'on donne une valeur à cette case
     
    Set elementHtml = IE.document.getElementById("j_password") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1475.Value 'on donne une valeur à cette case
     
    Set ObjectIE = IE.document.getElementById("Login") 'on sélectionne un bouton
    ObjectIE.Click 'on clique sur ce bouton
     
    With IE
    .navigate "http://bla bla.do?_pageId=21*221e0fe6433ef88e5fd354361c8eb1b9"
    Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu’à ce que la page soit chargée
    DoEvents
    Loop
    'End With
     
    Set elementHtml = IE.document.getElementById("nom") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1476.Value 'on donne une valeur à cette case
     
    Set elementHtml = IE.document.getElementById("prenom") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1477.Value 'on donne une valeur à cette case
     
    Set elementHtml = IE.document.getElementById("dateNaissance_representMin_min") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1478.Value 'on donne une valeur à cette case
     
    Set elementHtml = IE.document.getElementById("numero_min") 'on sélectionne une case du formulaire
    elementHtml.Value = UserForm1.TextBox1479.Value 'on donne une valeur à cette case
     
    Set ObjectIE = IE.document.getElementById("submitSearch") 'on sélectionne un bouton
    ObjectIE.Click 'on clique sur ce bouton
     
    Do While IE.Busy
        Application.Wait (Now() + 1 / 3600 / 24)
    Loop
     
     
     
    ' rajouter a partir de ici pour pour activer lien vers la feuille recherchée
     
     
     
     
    GoTo suite:
     
    erreur:
    IE.Visible = False
    MsgBox "Une erreur est survenue, veuillez contrôler votre nom d'utilisateur et mot de passe"
     
    suite:
     
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut



    Bonjour,

    en fait il n'y a pas de solution unique car tout dépend comment est codée la page source.

    S'il s'agit d'une table HTML, voir cette discussion, un exemple parmi d'autres de ce forum …

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Hello,

    Merci pour ta réponse, malheureusement cela ne corresponds pas tout à fait à ca que je cherche...

    j'ai vraiment l'ID de l'emplacement du lien hypertexte, mais je cherche à l'activer et je ne connais pas la procédure depuis vba pour l'activer...

    Il y a peut être une solution pour récupérer l'adresse de ce lien et rediriger IE sur cette adresse ?

    Qqun as une idée ?

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut



    Comme pourtant déjà évoqué tout dépend du code source de la page elle-même …

    Il faut donc déjà avoir des notions d'HTML pour la décrypter et comme le VBA ne dispose d'aucune procédure
    (pour rappel une procédure étant le code écrit par le développeur …),
    il faut connaitre soit le pilotage d'Internet Explorer soit les requêtes Web (et je suis loin d'en avoir fait le tour) …


    _________________________________________________________________________________________________
    Le langage ne fait pas le développeur;
    le développeur, même muet, crée lui le programme …


  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Bien
    Tant pis, merci tout de même de m'avoir répondu, je vais continuer à chercher

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Je suis finalement parvenu à faire ce que je cherchait à faire, effectivement je devait aller chercher dans le code html et extraire dans une cellule le lien en lui même, puis pointer une page IE sur l'adresse de la cellule. pour ceux que cela pourrait intéresser j'ai gardé la procédure et si cela vous serait utile je vous l'envoie volontiers par MP.

    Merci encore à ceux qui ont pris le temps de me répondre

    A bientôt, car ce forum est vraiment génial.

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

Discussions similaires

  1. Lien hypertext sur une alert javascript
    Par mopao_jlo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2007, 20h34
  2. realiser un lien hypertext sur une donnee sortant d'une base mysql
    Par leclone dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/12/2006, 15h44
  3. Réponses: 7
    Dernier message: 15/12/2006, 16h14
  4. [HTML] lien hypertext sur une ligne de tableau
    Par BigBarbare dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/05/2006, 14h43
  5. Un lien hypertexte sur une étiquette ?
    Par beegees dans le forum Access
    Réponses: 6
    Dernier message: 04/11/2005, 11h53

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