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 Excel/IE. Recuperer des données d'internet avec un PC verrouillé (CTRL/ALT/DEL).


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut VBA Excel/IE. Recuperer des données d'internet avec un PC verrouillé (CTRL/ALT/DEL).
    Bonjour,

    Alors voici ma question, j'ai mis en place un p'ti script sous VBA Excel qui va rappatrier les données d'un site (plusieurs en fait..) sous excel. Ce script fonctionne tres bien. SAUF! quand mon PC est verrouillé (CTRL+ALT+DEL).

    En fait, j'aimerais faire tourner ce script une fois par jour, quand je ne suis pas la (et donc PC verrouillé).

    Le script est a base d'Objets Shell.application, InternetExplorer.application, sendkeys (copier/coller)..etc...

    J'ai l'impression que le probleme vient du selectall/copier/coller en sendkey.

    Voici un exemple de 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
     
        Application.Wait Now + 2 / 3600 / 24
        Set IE = CreateObject("internetexplorer.application")
        Application.Wait Now + 2 / 3600 / 24
        IE.Visible = False
        IE.Navigate ("http://www.yahoo.fr")
            Do While IE.Busy
            Application.Wait Now + 0.1 / 3600 / 24
            Loop
        'Copie les données
        Application.Wait Now + 2 / 3600 / 24
        Application.SendKeys "^a^c"
        Application.Wait Now + 2 / 3600 / 24
        IE.Quit
        Sheets(1).Select
        Range("A1").Select
        Application.SendKeys "^v"
    Je repete ce script fonctionne tres bien lorsque mon PC est deverrouillé.

    Si vous avez une idée, parce que la, je seche ..
    Des idées quant à la maniere de faire les choses, voir aussi avec mes propriétés utilisateur (je ne suis pas admin de mon PC par ex.)..etc..etc..

    Bref, merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Si tu perds le focus de ta fenetre, il y a des chances que les sendkeys ne fonctionnent pas.
    Utilise plutot execWB :
    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
    Sub test()
        Dim ie As New InternetExplorer
        'ie.Visible = True
        ie.navigate "http://tonurl.com/"
        Do While ie.ReadyState <> 4
        Loop
        Do While ie.document.ReadyState <> "complete"
        Loop
        Call ie.document.body.Focus
        Call ie.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER)
        Call ie.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER)
     
        Feuil1.Paste Feuil1.[a1]
        ie.Quit
    End Sub
    Cela fonctionne si tu as déclaré la référence "Microsoft Internet Controls"
    Sinon :
    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
    Sub test()
        Set ie = CreateObject("InternetExplorer.Application")
        'ie.Visible = True
        ie.navigate "http://tonurl.com/"
        Do While ie.ReadyState <> 4
        Loop
        Do While ie.document.ReadyState <> "complete"
        Loop
        OLECMDID_SELECTALL = 17
        OLECMDEXECOPT_DONTPROMPTUSER = 2
        OLECMDID_COPY = 12
        Call ie.document.body.Focus
        Call ie.execWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER)
        Call ie.execWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER)
     
        Feuil1.Paste Feuil1.[a1]
        ie.Quit
        Set ie = Nothing
    End Sub

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ok merci dadavyvy,

    J'vais essayer ca, j'te tiens au courant...

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ok, ca a l'air de pas mal fonctionner les URL type web (html, php and co.)

    Par contre, je complique un peu ...

    Avec les URLs de type http://***/*.pdf (donc acrobat), il semblerait que le SELECTALL / COPY ne fonctionne pas.. pourtant j'ouvre bien mon fichier sous IE (avec un appel a Acrobat reader). Comment dire a Internet explorer de faire un SelectAll/Copy du fichier PDF ?

    Je ne veux pas le code source car illisible, je voudrais le resultat "ecran" (il n'y a pas d'image, deja ca d'pris .. )

Discussions similaires

  1. Recuperer des données Excel d'internet
    Par mea4502 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/02/2013, 10h10
  2. Réponses: 0
    Dernier message: 18/08/2010, 12h43
  3. [XL-2002] Recuperer des données d'un fichier excel vers un autre
    Par labinocle81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/08/2009, 11h36
  4. recuperation des données sur un fichier excel
    Par ghyosmik dans le forum Excel
    Réponses: 2
    Dernier message: 19/09/2007, 11h26
  5. recupere des donnes d'une page excel
    Par marouane2010 dans le forum Visual C++
    Réponses: 3
    Dernier message: 19/11/2006, 10h03

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