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 :

Accès liens internet en Vba


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Accès liens internet en Vba
    Bonjour à vous.

    Débutant sur le forum, ceci est mon premier post, j'espère ne pas faire d'impertinence. N'hésitez pas à me le dire.
    Je viens vous soumettre ma problématique afin de voir si une solution peut être apportée .

    En effet je develope actuellement une application excel avec vba afin d'accéder au même logiciel et je me retrouve bloqué au moment d'accéder à un lien.

    J'ai utilisé plusieurs méthodes telles que le positionnement de souris... mais afin de gagner en robustesse j'aimerai donc automatiser cette application au maximum.

    Voici donc la partie du code html de la page :

    Code Source de la page internet

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="ratMenu1" style="z-index: 1000; position: absolute; width: 580px; height: 100px; visibility: hidden; top: 25px; left: 0px;" onmouseover="clearTimeout(theID);onLayer=true;SetMenuVisible('ratMenu1','on')" onmouseout="clearTimeout(theID);onLayer=false;TimedClose('ratMenu1','off','.2')">
     
    <a class="headermenulink" id="ongletTSTGare" style="background-color: #ffcc33; cursor: hand;" onmouseover="onLayer=true;setOngletBGColor('ongletTSTGare','#ffcc33');SetMenuPos('ratMenu1','ongletTSTGare');SetMenuVisible('ratMenu1','on')" onmouseout="onLayer=false;TimedClose('ratMenu1','off','.1')" onclick="loadTST("Gare")">

    Et voici donc le code vba permettant d'entrer dans la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Internet2()
    Dim ie As Object
    Set ie = CreateObject("internetexplorer.application")
    ie.navigate ("http://base-assistance.sncf.fr/commun/html/prive/commun/cadrePrincipal.html?time=1423628332281")
    ie.Visible = True: ie.Top = 0: ie.Left = 0
    ie.Width = GetSystemMetrics32(0)
    ie.Height = GetSystemMetrics32(1)
     
    Do While ie.readyState <> 4
    Loop
     
    End Sub
    En attendant vos retours.
    Merci à vous.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re un debut de piste
    re
    voici ton point de départ
    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
    Sub Internet2()
        Dim ie As Object
        Set ie = CreateObject("internetexplorer.application")
        With ie
            .navigate ("http://base-assistance.sncf.fr/commun/html/prive/commun/cadrePrincipal.html?time=1423628332281")
            .Visible = True: .Top = 0: .Left = 0
            'ie.Width = GetSystemMetrics32(0)
            'ie.Height = GetSystemMetrics32(1)
            Do: DoEvents: Loop While .readyState <> 4 Or .busy: Loop
        'on pointe le bouton par son ID et on click
        .document.getelementbyid("ongletTSTGare").Click
        Do: DoEvents: Loop While .readyState <> 4 Or .busy: Loop
    ' le code pour faire ce que veux ici
    .Quit
    End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Accès liens Internet en vba
    Bonjour à toi,

    Je tiens d'abord à te remercier pour le temps que tu passes sur mon problème.

    J'ai donc inséré ton code dans mon programme et il me ressort une erreur.

    " Erreur d’exécution 91 : Variable objet ou variable de bloc with non définie."

    J'ai donc enlevé le bloc with afin d'éliminer les erreurs et elle ressort toujours, j'en déduit donc que l'erreur dépend de la variable non? qu'en penses-tu?

    voici la version 2 du 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
    Sub Internet2()
        Dim ie As Object
        Set ie = CreateObject("internetexplorer.application")
     
            ie.navigate ("http://base-assistance.sncf.fr/commun/html/prive/commun/cadrePrincipal.html?time=1423628332281")
            ie.Visible = True: .Top = 0: .Left = 0
            'ie.Width = GetSystemMetrics32(0)
            'ie.Height = GetSystemMetrics32(1)
            Do: DoEvents: Loop While ie.readyState <> 4 Or ie.busy: Loop
        'on pointe le bouton par son ID et on click
        ie.document.getelementbyid("ongletTSTGare").Click
        Do: DoEvents: Loop While ie.readyState <> 4 Or ie.busy: Loop
    ' le code pour faire ce que veux ici
    .Quit
     
    End Sub
    Merci d'avance

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    non l'erreur venait de moi un loop de trop et non il faut pas enlever les with /endwith sinon ca ne peut pas fonctionner
    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
    Sub Internet2()
        Dim ie As Object
        Set ie = CreateObject("internetexplorer.application")
        With ie
            .navigate "http://base-assistance.sncf.fr/commun/html/prive/commun/cadrePrincipal.html?time=1423628332281"
            .Visible = True: .Top = 0: .Left = 0
            'ie.Width = GetSystemMetrics32(0)
            'ie.Height = GetSystemMetrics32(1)
            Do: DoEvents: Loop While .readyState <> 4 Or .busy
        'on pointe le bouton par son ID et on click
        .document.getelementbyid("ongletTSTGare").Click
        Do: DoEvents: Loop While .readyState <> 4 Or .busy
    ' le code pour faire ce que veux ici
    .Quit
    End With
    End Sub
    je te rappelle que je ne peux pas tester le lien étant invalide chez moi

    si l'erreur se déclenche sur la ligne 11 et que tu vois bien ta page affiche dans IE cela veut dire qu'il faut rallonger les attentes par un wait
    si tu vois que dans IE ca a bogué c'est bien le lien qui est invalide
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour à toi,

    J'ai donc testé ton code sans les loops ce matin et en effet les loops ne font plus bogué le programme. Mais l'erreur à la ligne 11 est bien présente.
    En effet, la page internet s'ouvre bien, mais aucun clic n'est réalisé malgré la mise en place de : Application.Wait (Now + TimeValue("0:00:10"))
    L'erreur d'exécution 91 : Variable Objet ou variable de bloc with non définie est toujours active...

    Je ne sait que faire....

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    et oui mais n'ayant pas accès a cette page je ne peux rien faire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    N'ayant pas pu résoudre mon problème, j'ai décidé de le trouver une solution alternative.
    Peux tu m'aider à nouveau?

    En effet l'application Internet Explorer étant ouverte par défaut sur nos pc j'aurai simplement besoin de la mettre au premier plan avant de réaliser mon copier coller.

    Est-ce possible de mettre Internet explorer au 1er plan ou pas?

    J'ai trouvé sur internet la procédure mais pour word. Je n'arrive pas à la transposer pour Internet Explorer

    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
    	 Dim oWORD As Word.Application
        'Document Word
    '    Dim wdDoc As Object
        Dim wdDoc As Word.Document
        'Sélection dans un document Word
        Dim wdSel As Object
        Dim signet As Object
        'Chemin du modèle de document
        Dim IntSigNum As Integer
     
        'vérifier la présence de Word
            '
            '   Création d'une application Word
            '
            Set oWORD = GetObject(, "Word.Application")
            If Err.Number = 429 Then
            '   L' erreur 429(ActiveX component can't create object)
            '   est retournée si aucune application Word existe.
            '
                Err.Clear
                Set oWORD = CreateObject("Word.application")
            End If
     
    AppActivate "Word"
    Dois-je également activer des références spéciales?

    Cordialement.

Discussions similaires

  1. VBA et liens Internet
    Par octet dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 04/10/2012, 22h39
  2. lien internet avec VBA EXCEL
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/07/2007, 10h40
  3. Réponses: 3
    Dernier message: 08/12/2006, 16h22
  4. [VB6] détection d'accès a internet via un réseau
    Par maddog2032 dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 19/11/2003, 23h01

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