Macro qui accède directement a un bouton site web

lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour a tous je suis nouvelle dans la prog
je voulais interagir avec une macro sur script ou un bouton qui se trouve dans un site intranet , mon soucis c'est que j'ai beau a cherché j'arrive pas a le déclenché , comment reconnaitre le bouton et comment appeler le javascript apartir de la macro ???
voila mon code
merci d'avance pour votre aide :)

Sub t2() 
'Déclaration des variables 
Dim IE As Object 
Dim IEDoc As Object 
Dim DOCelement As Object 
'Initialisation des variables 
Set IE = CreateObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") 

'Affichage de la fenêtre IE 
IE.Visible = True 

'Chargement de la page web 
IE.Navigate ("http://..................") 

' attente de fin de chargement 
Do Until IE.ReadyState = 4 
DoEvents 
Loop 

'On pointe le membre Document 
Set IEDoc = IE.Document 

'Tempo de 2 secondes 
Application.Wait Now + TimeValue("0:00:01") 


Set DOCelement = IEDoc.getElementsByTagName(" ..... ") 'declancher le bouton 
' DOCelement.Click 

'On libère la variable IE 
Set IE = Nothing 
End Sub


EDIT : Ajout des balises de codes.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, voici ton code un peu clarifié et corrigé.
    tu peux voir que quand tu utilises getElementsByTagName, le tag n'est pas le nom de l'élément, c'est le type de l'élément, donc "BUTTON", et cela te donne une liste de tous les boutons.
    tu peux éventuellement tester s'il s'agit du bon bouton avant de le cliquer.
    Option Explicit
    
    Sub t2()
    'Déclaration des variables
    Dim IE As InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim DOCelementcol As IHTMLElementCollection
    Dim DOCelement As HTMLButtonElement
    'Initialisation des variables
    Set IE = New InternetExplorer
    'Affichage de la fenêtre IE
    IE.Visible = True
    'Chargement de la page web
    IE.Navigate ("...")
    ' attente de fin de chargement
    Do Until IE.ReadyState = 4
    DoEvents
    Loop
    'On pointe le membre Document
    Set IEDoc = IE.Document
    'Tempo de 2 secondes
    Application.Wait Now + TimeValue("0:00:01")
    Set DOCelementcol = IEDoc.getElementsByTagName("BUTTON")
    For Each DOCelement In DOCelementcol 'examiner tous les boutons
        If DOCelement.ID = "..." And DOCelement.Name = "..." And DOCelement.innerText = "..." Then
            DOCelement.Click
        End If
    Next DOCelement
    'On libère la variable IE
    Set IE = Nothing
    End Sub
    
    0
    1. lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      bonjour, et merci pour votre réponse ,j'ai pas bien compris cette partie
      '-------------------------------------------------------------------------------------------------------------------------------------------------------------------
       Set DOCelementcol = IEDoc.getElementsByTagName("BUTTON")
      For Each DOCelement In DOCelementcol 'examiner tous les boutons
          If DOCelement.ID = "..." And DOCelement.Name = "..." And DOCelement.innerText = "..." Then
              DOCelement.Click
          End If
      Next DOCelemen
      

      ,------------------------------------------------------- voici le code que j'ai trouver sur la page web intranet---------------------
      'EnsureScriptFunc('offline.js', 'TakeOfflineToClientReal', function()
      '{
      'TakeOfflineToClientReal(2, 1, 'http:\u0f\uespace-collaboratif.intranet....................................................', 1, 101,'1-4e85-bb1c-9c31db..........', '');});
      'return false; 
      

      '------------------------------------------------------------------------------------------------------------------------------------------------------------------
      donc voila je sais pas comment utiliser ton code car je sais pas esq c un bouton ou autre chose!!!


      EDIT : AJout des balises de code !
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      tu souhaites bien cliquer automatiquement sur un bouton?
      il faudrait que tu nous montres la partie de la page web où le bouton est défini, sinon nous ne pouvons pas t'expliquer comment reconnaître le bouton.
      cela devrait commencer par
      <button
      et se terminer par
      </button>
      .
      0
    3. lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      la j'ai pas accès a la page intranet, demain matin je ferai une capture d'écran

      tu voit sur le site sharepoint , ya "syncronisation" le but de cette macro qu'elle déclenche automatiquement sur "sycronisation" et que je recupere les donnée sur ordi
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      plutôt qu'un capture d'écran, partage une partie du texte source de la page.
      0
    5. lora012 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      bonjour
      voila ce que j copié sur la page

      <a title=" synchronisée ........" class="ms-promotedActionButton" id="ctl00_ctl74_SyncPromotedAction" style="display: inline-block;" onmouseover="this.firstChild.firstChild.style.left='-197px'; this.firstChild.firstChild.style.top='-102px';" onmouseout="this.firstChild.firstChild.style.left='-200px'; this.firstChild.firstChild.style.top='-66px';" onclick="EnsureScriptFunc('offline.js', 'TakeOfflineToClientReal', function() { TakeOfflineToClientReal(2, 1, 'http:\\collaboratif.intranet................', 1, 101,'70ba3-1091-4edb', '');}); return false;" href="javascript:__doPostBack('ctl00$ctSyncPromotedAction','')">
      
      
      <span class="s4-clust ms-promotedActionButton-icon" style="width: 16px; height: 16px; overflow: hidden; display: inline-block; position: relative;">
      
      <img style="left: -200px; top: -66px; position: absolute;" alt="" src="/espaces2323/sc/img/mon-v2.png"/>
      
      <span class="ms-promotedActionButton-text">
      
      Texte - Synchroniser
      


      EDIT : Ajout des balises de code. Merci d'y penser dans tes prochains messages !
      0