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

Contribuez Discussion :

Automatiser l'ouverture d'un fichier compatible Excel depuis le Web (téléchargement)


Sujet :

Contribuez

  1. #241
    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 677
    Points
    18 677
    Par défaut



    Je ne cherche pas à effectuer un Treeview complet car c'est assez long - enfin tout dépend de la source -
    mais plutôt à directement cibler un type d'élément selon une condition comme par exemple les posts #222 & 230 …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  2. #242
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    merci d'accord je regarde tout ca...
    mais si je comprends bien tu ajoutes le module UIAutomation puis avec Dim oCUIA As New CUIAutomation tu va pouvoir l’initialiser puis ensuite avec les divers dim X as IUIAutomation...tu vas pouvoir étudier les divers éléments de oCUIA???
    bonne journée

  3. #243
    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 677
    Points
    18 677
    Par défaut

    Exact !

    La variable objet oCUIA (CUIAutomation) est le point d'entrée d'UI Automation Client
    et les autres variables servent à pointer un type d'objet de cette bibliothèque …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #244
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    d'acord mais peux tu me dire stp pourquoi dans la fenêtre variables locales lors d'un clic sur le + du oELMT par exemple il indique aucune variable comme suit et pourtant cela marche!!! D'habitude j'utilise toujours Set X = ... pour voir mais là du coup...heureusement qu'il y a ton rootelement (en cours d'étude)

    - : oELMT : : IUIAutomationElement/IUIAutomationElement
    : : <Aucune variable> :

    ca progresse, ca progresse

  5. #245
    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 677
    Points
    18 677
    Par défaut

    Dans quel numéro de post le code en question ?
    Sinon cela arrive parfois avec certaines librairies.

    Sur un forum étranger « vouloir utiliser UI Automation Client en VBA » relèverait de « la folie douce » …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #246
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    le code c'est celui de ton post #222 sur lequel je fais des tests en le mettant dans thisworkbook mais je m'y perds.
    Par contre tout marche bien malgré le fait que dans la fenêtre variables locales: aucune variable , il n'y a jamais de variable quelque soit le Set X =...
    Sinon par contre il y a bien les choix proposés avec le early binding par exemple type oAE. et tout un tas de choix...

    je n'ai pas compris qui est oCUIA (ou comment lister ses éléments avec leurs propriétés, conditions...) exemple avec set oAC= oCUIA.CreatePropertyCondition suivant les conditions mises, et d'ailleurs j'ai du mal avec ces conditions car je ne les trouvent pas...désolé si je ne suis pas clair car ca n'est pas clair ici pour le moment
    ton 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
     
    Sub ListeFenetres()
        Dim oAC As IUIAutomationCondition, oAE As IUIAutomationElement, oAEA As IUIAutomationElementArray
        Dim oCUIA As CUIAutomation 'ou Dim oCUIA As New CUIAutomation
     
        Set oCUIA = New CUIAutomation '+ : oCUIA :  : CUIAutomation/CUIAutomation
    Set oAC = oCUIA.CreatePropertyCondition(UIA_ControlTypePropertyId, UIA_WindowControlTypeId)
        '- : oAC :  : IUIAutomationCondition/IUIAutomationCondition
        '    :  : <Aucune variable> :
        'pourtant il y a bien
        'UIA_ControlTypePropertyId = 30003 ;UIA_WindowControlTypeId = 50032
                  Debug.Print vbLf, "Liste fenêtres :"
                  Set oAEA = oCUIA.GetRootElement.FindAll(TreeScope_Descendants, oAC) 'ici étude des descendant de oAC de handle 30003??? non
                  '- : oAEA :  : IUIAutomationElementArray/IUIAutomationElementArray
                  '    :  : <Aucune variable> :
        For N& = 0 To oAEA.Length - 1
            Set oAE = oAEA.GetElement(N)
            '- : oAE :  : IUIAutomationElement/IUIAutomationElement
            '    :  : <Aucune variable> :
            'pour l'élément 0
            'oAE.CurrentClassName="wndclass_desked_gsk"
            'oAE.CurrentName="Microsoft Visual Basic - automatiser_ouverture_marc9_test.xls [exécution en cours] - [ThisWorkbook (Code)]"
            Debug.Print oAE.CurrentClassName; Tab(41); oAE.CurrentName
    Next
            Debug.Print , N; "éléments"
            Set oAC = Nothing:  Set oAE = Nothing:  Set oAEA = Nothing:  Set oCUIA = Nothing
    'ici des petits tests pour voir ce qu'il se passe
        Set oCUIA = New CUIAutomation
    Set oAC = oCUIA.CreatePropertyCondition(UIA_NamePropertyId, "")
        'UIA_NamePropertyId =30005
        Set oAEA = oCUIA.GetRootElement.FindAll(TreeScope_Subtree, oAC) 'ici étude du sous arbre de oAC de handle 30005 ???pas sûr
        For N& = 0 To oAEA.Length - 1
            Set oAE = oAEA.GetElement(N)
    Debug.Print oAE.CurrentClassName; Tab(41); oAE.CurrentName 'n'affiche aucun oAE.CurrentName juste
             'des oAE.CurrentClassName qui d'ailleurs ne recoupent aucune de celle d'avant du 1° listing
    Debug.Print oAE.CurrentClassName; Tab(41); oAE.CurrentIsControlElement
        Next
            Debug.Print , N; "éléments"
    End Sub

  7. #247
    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 677
    Points
    18 677
    Par défaut


    Oui avec cette bibliothèque on ne peut rien voir, comme pour le Document d'IE déclaré en Object

    La documentation de base se trouve sur MSDN.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #248
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    d'accord lecture de MSDN mais je ne comprends pas vraiment ce que je lis

    en fait je ne comprends pas ton oAC et oCUIA et le CreatePropertyCondition
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oAC = oCUIA.CreatePropertyCondition(UIA_ControlTypePropertyId, UIA_WindowControlTypeId)
    ne recoupe aucun élément de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oAC = oCUIA.CreatePropertyCondition(UIA_NamePropertyId, "")
    où les trouves tu ces PropertyId type UIA_ControlTypePropertyID, UIA_WindowControlTypeId, UIA_NamePropertyId, sans toi impossible d'écrire la syntaxe...

    lecture en cours des posts...

  9. #249
    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 677
    Points
    18 677
    Par défaut

    • Elles se trouvent déjà dans l'aide de MSDN !
       Précision : je n'utilise pas Google par défaut pour effectuer des recherches …

       Donc quand tu es dans la page de l'aide concernant IUIAutomation::CreatePropertyCondition method
       il y a déjà un lien pour les Property Identifiers


    • Sinon une astuce à partir de mon code, comme la référence est activée tu les as déjà à portée de clic :

       tu copies une constante UIA_… pour la coller dans l'Explorateur d'objets (via F2),
       tu valides et ainsi tu vois les autres constantes de la collection associée …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  10. #250
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    ah ok merci le temps de regarder tout ca...j'avance, j'avance mais encore une fois pas très vite!!!

    sinon une petite question sur le code de Pat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function SWL Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    ca se rapporte à quoi au juste les 2 dernières valeurs ByVal nIndex As Long, ByVal dwNewLong As Long, par exemple -16, &H94CF0080 lors de la transformation(il y a une histoire d'élasticité?)?
    encore une fois je recherche sur le net mais pas moyen de trouver, mais avec ton astuce du post précédent ca marche peut être...en tout cas merci pour l'astuce je regarde et te dis car ca serait bien de trouver ca tout seul

  11. #251
    Futur Membre du Club
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Explication
    Bonjour,

    Je vous remercie pour vos contributions qui font grandement avancer la communauté VBA !

    J'en suis resté peu après le post #76 (Pour télécharger avec IE ).
    Avez-vous / pouvez-vous s'il vous plait m'expliquer les détails de ce code d'un façon simple puis d'un façon un peu plus avancer ?


    Par exemple
    - Quesceque le type : IUIAutomationInvokePattern, l'objet CUIAutomation
    - Comment Mr Marc.L à pensé à prendre référence UIAutomationClient pour réaliser ce code.
    - Pouvez-vous expliquer svp le fonctionnement de
    Set oIUIAIP = oCUIA.ElementFromHandle(ByVal H).FindFirst(TreeScope_Subtree, _
    oCUIA.CreatePropertyCondition(UIA_NamePropertyId, "Ouvrir")). _
    GetCurrentPattern(UIA_InvokePatternId)

    J'ai beau lire cela :
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

    je ne comprend pas plus que ça...

    Pouvez-vous m'expliquer pourquoi le "Enregistrer sous" ne fonctionne pas alors que le "Enregistrer" fonctionne ?
    Avez-vous une solution si les fichiers ne peuvent pas s'ouvrir avec Excel ? ( si le fichier est un pdf par exemple )

    Si cela vous demande trop de temps merci de ne pas tenir compte de ma demande.
    Je vous souhaite une bonne journée.

  12. #252
    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 677
    Points
    18 677
    Par défaut

    Bonjour.

    • L'objet CUIAutomation est le point d'entrée pour utiliser la référence UIAutomationClient.
       Difficile de mieux expliquer que sa documentation :
       IUIAutomationInvokePattern est l'interface pour invoquer un objet, comme cliquer sur un bouton …

    • En voyant son utilisation d'abord dans d'autres langages puis enfin un exemple simple en VBA …

    • Initialisation de l'interface du premier élément dont le nom est "Ouvrir"
       dans l'élément indiqué par son numéro d'Handle (donc une fenêtre) …


    Que ce soit pour piloter Firefox comme Internet Explorer, j'ai tenté de coder une procédure
    pour rendre accessible cette référence au plus grand nombre
    mais ce qui va bien sur un ordinateur peut ne pas fonctionner sur un autre déjà selon la version de Windows !
    N'y ayant pas touché depuis six mois …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  13. #253
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut fermeture IE
    Bonjour
    Marc : un petit retour plus haut dans tes posts où voit on IE en mémoire résiduelle?
    Davido parle du gestionnaire de tâche mais ici j'ai toujours quelque chose type iexplore.exe dedans...

    une information peut être inutile sur le problème IE résiduel mais:
    IE.visible = false garde toutes les informations d'IE=> OK
    IE.Quit : supprime toutes les données (semble t'il) =>plus d'interaction possible OK
    Set IE = Nothing ne supprime pas toutes les données par exemple dans toutes les version de Pat pour ABC où Pat met SetParent hwndIEedge, GetDesktopWindow et bien ensuite toujours possible d’interagir avec IE
    Set IE = Nothing 'ici déconnecte IE ' :
    IE : Nothing : Object plus rien pour IE
    'mais grosse surprise la suite permet toujours d’interagir sur les n° de handle car le cadre internet explorer dans la barre d'outil reste ouvert comme si IE était toujours là!!!
    Set IE = NothingSetParent hwndIEedge, GetDesktopWindow=>ici ca marche toujours!!!

  14. #254
    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 677
    Points
    18 677
    Par défaut

    Bonjour,

    après l'instruction .Quit, il faut patienter un certain temps (comme le fut du canon ! de 10s à 2mn …)
    avant de voir le résiduel disparaître !

    Cela a l'air d'être particulier à IE 11 …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  15. #255
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut IE résiduel
    D'accord juste pour info tu le vois/trouves où ce IE résiduel? dans le gestionnaire de tâche où sous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QRY = "SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'", WMI = "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"
    For Each V In GetObject(WMI).ExecQuery(QRY, , 48):  V.Delete_:  Next
    (désolé pas étudié ton post pour le moment où il y a CallByName faute de temps):

  16. #256
    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 677
    Points
    18 677
    Par défaut



    En fait on en a eu conscience lors d'une seconde exécution de la procédure via un message d'erreur concernant IE.
    Et là effectivement le résiduel est visible dans le Gestionnaire des tâches …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  17. #257
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    d'accord, donc même si pas d'erreur avec IE tu le vois ce IE11 résiduel dans gestionnaire de tâches...

    Sinon dans ton post 162 où trouves tu ce code dans la page web ABC Bourse stp: ctl00_BodyABC_programmaticPopup_DropShadow qui est extrait de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsObject(IE.Document.all("ctl00_BodyABC_programmaticPopup_DropShadow")) Then Error 2000
    peut être par ici??? (c'est lui le jsscript de fond pour voir si fin téléchargement dont tu parles?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sys.Application.add_init(function() {
        $create(AjaxControlToolkit.ModalPopupBehavior, {"BackgroundCssClass":"modalBackground","DropShadow":true,"PopupControlID":"ctl00_BodyABC_programmaticPopup","PopupDragHandleControlID":"ctl00_BodyABC_programmaticPopupDragHandle","dynamicServicePath":"/download/historiques.aspx","id":"programmaticModalPopupBehavior","repositionMode":2}, null, null, $get("ctl00_BodyABC_hiddenButtonForModalPopup"));
    });
    PS: pas mal ton clin d'oeil sur le faux module au fait

  18. #258
    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 677
    Points
    18 677
    Par défaut


    Si je me souviens bien, la fenêtre apparait en cas d'erreur de saisie comme par exemple la date de fin inférieure à la date de début.

    Par contre je ne saisis pas de quoi il est question dans ton PS …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  19. #259
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    pour le PS ton faux module: ' Trop facile si le code était ici !

    ok pour la fenêtre...mais j'aurai des questions plus tard la dessus...

    sinon toujours dans ce post 162 pourquoi mets tu cela a cet endroit pour le focus stp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With IE.Document.getElementsByTagName("A"):  .Item(.Length - 1).Focus:  End With
    pourquoi le Focus est il mis sur l'anchor "https://www.abcbourse.com/accueil/map.aspx"??? A moins que sur ton navigateur l'anchor ne soit pas la même.

    Le focus tu ne le remets pas sur le bandeau avec l'instruction suivante que tu as mise?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If SetForegroundWindow(IE.Hwnd) Then CreateObject("WScript.Shell").SendKeys "{TAB}~" Else Beep
    bonne journée

  20. #260
    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 677
    Points
    18 677
    Par défaut
    Oui effectivement j'avais oublié c'te p'tite blague !

    Comme cela remonte à plusieurs mois c'est plus facile si tu indiquais le nom de la procédure, ici IEKeys2

    Je place le focus sur le dernier élément avec un lien pour n'avoir à simuler qu'une seule tabulation derrière.
    Indique si IEKeys1 ne fonctionne pas (Ok de mon côté sur Seven & IE9)
    comment placer un focus sur un élément de la page au plus proche du bandeau …

    C'est le focus dans la page mais pour autant IE n'est pas forcément la fenêtre active, d'où SetForegroundWindow

    Le comportement pouvant varier d'une version d'IE à une autre, aussi selon la version de Windows, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Forcer l'ouverture d'un fichier avec Excel
    Par Cda01 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/12/2011, 15h47
  2. [XL-2003] Ouverture d'un fichier par excel en 3 exemplaires
    Par basto dans le forum Excel
    Réponses: 1
    Dernier message: 25/08/2009, 17h05
  3. ouverture d'un fichier avec excel sous vs.net 2003
    Par lesultan2007 dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/07/2009, 15h46
  4. Telecharger un fichier excel depuis le web via PERL
    Par ptimos93800 dans le forum Web
    Réponses: 3
    Dernier message: 19/03/2009, 18h38
  5. [vbexcel]automatiser l'ouverture d'un fichier
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/12/2005, 17h33

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