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 :

Compatibilité Activer une fenêtre IE sous différentes configurations [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Compatibilité Activer une fenêtre IE sous différentes configurations
    Bonjour tout le monde!
    C'est mon premier topic mais ce n'est pas ma première visite sur votre super forum. Je vous remerci d'ailleurs pour l'aide que vous m'avez déjà fourni.

    Mon programme: j'ai un N° de bordereau que j'entre dans un form, ensuite la macro doit ouvrir une page web php sur IE en fonction de ce N° en vue de copier son contenu.

    Mon problème: je ne suis pas très bon avec "Microsoft Internet Control", la macro fonctionne parfaitement sur mon poste (XP/Excel2000SP3/IE7) mais il ne fonctionne pas sous les autres postes où à therme il doit fonctionner. Ces autres postes sont sous Win2000/IE6 par exemple. Je pense donc à un problème de compatibilité mais la macro ne fonctionne pas non plus avec Win7/IE8, bref le néant pour moi.

    Localisation: Le problème est que la fenêtre IE ne s'active pas elle reste en arrière plan. Ainsi la boucle de statut terminé ne s'arrète jamais, il me faudrait une commande pour activer IE sur toutes les versions... Est-ce possible?

    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
     
    Sub téléchargement()
     
    '*************************************************************************************
    '* Remarque générale: Outil/Référence/"Microsoft Internet Controls" doit être coché! *
    '*************************************************************************************
     
    Dim Page As New InternetExplorer
    Dim ps As Boolean
     
        Cells.ClearContents
        'Ouverture du navigateur
        Page.Navigate "https://mon_url.php?bordereau=" & bor
        Page.Visible = True
        'Fonction simple de délai
        ps = False
        Do
            If InStr(Page.StatusText, "Terminé") = 1 Then
                ps = True
            End If
        Loop Until ps = True
     
        'Copier/coller
        With Page.Document
            Application.SendKeys "^a"
            Application.Wait Now + TimeValue("00:00:03")
            Application.SendKeys "^c"
            Application.Wait Now + TimeValue("00:00:01")
        End With
        Page.Quit
        Workbooks("Impression Suivi Diagnostique.xls").Activate
        Range("A1").Select
    Past:
        On Error GoTo Past
        ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:= _
            False
        On Error GoTo 0
        Module1.rechercheSN
     
    End Sub
    Merci à l'avance les experts!

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Les tuto que tu m'as conseillé sont excelents, cependant j'ai toujours un problème de taille et je ne trouve pas de réponse à ce sujet: la ligne "Range("A1") = IE.Document.body.innerText". Cette ligne n'écrit que dans la formule de la cellule A1. Moi je voudrais que le contenu de ma page web soit copié sur le workbook sur plusieurs lignes de manière à exploiter les données récupérés.

    Merci d'avance


    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
    Sub téléchargement()
     
    '*************************************************************************************
    '* Remarque générale: Outil/Référence/"Microsoft Internet Controls" doit être coché! *
    '*************************************************************************************
     
    Dim IE As InternetExplorer
    Dim maPageHtml As HTMLDocument
    Dim Htable As IHTMLElementCollection
     
    Cells.ClearContents
     
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
     
    IE.Navigate "https://monsite/bordereau=" & bor
        Do Until IE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
     
    Range("A1") = IE.Document.body.innerText
     
    IE.Quit
     
    Workbooks("Impression Suivi Diagnostique.xls").Activate
     
    'Module1.rechercheSN
     
    End Sub

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,dans ton cas si c'est vraiment basique
    Lancer le macro recorder
    puis Menu Données/Données Externes/Nouvelle requete sur le Web
    coller le lien
    sélectionner les zones à importer
    etc
    Optimiser le code à la main : Nettoyage feuille avant lancement,suppression zones nommées etc

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ce n'est malheureusement pas possible avec cette méthode.
    Je préfererais trouver un moyen d'utiliser la commande "IE.Document.body.innerText" pour copier les données sur la feuille de calcul ligne par ligne.

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re,travailler en aveugle pas facile,ultime tentative
    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
    Private Sub Rch()
    Dim IE As InternetExplorer
    Dim PageHtml As HTMLDocument
    Dim sStr As String
    Dim sBrute As String
     
        Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"
        Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1"
     
        Set IE = New InternetExplorer
        IE.Visible = False
     
        sStr = "http://.........."
     
        IE.navigate sStr
        Do Until IE.readyState = READYSTATE_COMPLETE
            DoEvents
        Loop
     
        Set PageHtml = IE.document
        sBrute = PageHtml.body.innerText
     
        IE.Quit
        Set IE = Nothing
     
        Application.ScreenUpdating = False
        Feuil1.Range("A1") = sBrute
        Application.ScreenUpdating = True
     
    End Sub
    si Ok à toi de passer en Late Binding

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'arrive au même résultat avec ma macro.
    Du coup, j'ai une piste pour la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("A1") = IE.Document.body.innerText
    Range("A1").TextToColumns
    Le seul problème que j'ai, c'est de mettre les données en ligne et non en colonnes. Il me faudrait une fonction TextToRows

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut Andr01d,

    regarde ici? j'ai eu une demande assez similaire il y a quelques temps, et Qwazerty m'a trouvé la solution.

    Bonne chance.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai une solution qui me convient:
    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
     
    Public kmax As Integer, bor As String, tabSN() As String, fichier As String
     
    Sub téléchargement()
     
    '*************************************************************************************
    '* Remarque générale: Outil/Référence/"Microsoft Internet Controls" doit être coché! *
    '*************************************************************************************
     
    Dim IE As InternetExplorer
    Dim data As String
     
    Cells.ClearContents
     
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
     
    IE.Navigate "https://monsite.fr/page.php?bordereau=" & bor
        Do Until IE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
     
    Range("A1") = IE.Document.body.innerText
    Range("A1").TextToColumns
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Copy
    Range("A2").PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=True
     
    IE.Quit
     
    Workbooks("Impression Suivi Diagnostique.xls").Activate
     
    Module1.rechercheSN
     
    End Sub
    Merci beaucoup pour vos lien et votre aide

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

Discussions similaires

  1. [Gtkmm] activer une fenêtre
    Par drKzs dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 08/04/2008, 11h23
  2. [Access 97] Activer une fenêtre
    Par garsflo dans le forum IHM
    Réponses: 3
    Dernier message: 17/12/2007, 19h15
  3. Réponses: 4
    Dernier message: 19/06/2007, 10h02
  4. Creer une appli visualisable sous différentes tailles d'écran?
    Par UnSofteuxAmateur dans le forum Delphi
    Réponses: 3
    Dernier message: 13/12/2006, 22h41

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