Piloter une page SQL server

Bonjour,

Je souhaite automatise une tache répétitive via une macro en VBA. Mon souci est que je n’arrive pas à renseigner le champ qu’il faut sur la page web. C’est une page SSRS. Si quelqu’un peut me donner des pistes je suis preneur.

Le code de ma macro :

Option Explicit
Public Sub Navigateur()
Dim oNav As InternetExplorerMedium
Dim oDoc As HTMLDocument
Dim objCollection As Object

Set oNav = New InternetExplorerMedium
oNav.Visible = True
oNav.navigate "http://xxxxxxxxxxxxxxxx"
' Attente avec timeout de 10 s
If WaitIE(oNav, 10) Then
   ' 10 s écoulées et page non chargée
   MsgBox "Time out!"
Else
   ' Page chargée, on continue
   Set oDoc = oNav.document
   Set objCollection = oDoc.getElementsById("ReportViewerControl_ctl04_ctl03_txtValue")
   objCollection.Value = "400056958"
End If
End Sub

Public Function WaitIE(oNav As InternetExplorerMedium, Optional pTimeOut As Long = 0) As Boolean
Dim lTimer As Double
lTimer = Timer
Do
    DoEvents
   If oNav.readyState = READYSTATE_COMPLETE And Not oNav.Busy Then Exit Do
   If pTimeOut > 0 And Timer - lTimer > pTimeOut Then
       WaitIE = True
       Exit Do
   End If
Loop
End Function

le code HTML en fichier joint

Merci à vous.

html message erreur debug

Bonjour,

je n'ai pas trouvé l'origine de l'erreur (je continue à chercher), mais voici une autre écriture qui fonctionne avec navigate ...

Sub RechercheVBAExcel()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim texte As HTMLInputElement
Dim formulaire As HTMLFormElement

    IE.navigate "http://www.google.fr"
    IE.Visible = True
    WaitIE IE
    Set IEDoc = IE.Document
    Set texte = IEDoc.all("q")
    texte.Value = "forum excel pratique"
    Set formulaire = IEDoc.forms("f")
    formulaire.submit
    WaitIE IE

Set IEDoc = Nothing
Set IE = Nothing
End Sub
Sub WaitIE(IE As InternetExplorer)
   Do Until IE.readyState = READYSTATE_COMPLETE
      DoEvents
   Loop
End Sub
7formulaire.xlsm (14.57 Ko)

Slt lami,

Slt Steelson,

Je pense que le probleme est un petit "s"

Set objCollection = oDoc.getElementById("ReportViewerControl_ctl04_ctl03_txtValue")

essaie comme ca

Set objCollection = oDoc.getElementById("ReportViewerControl_ctl04_ctl03_txtValue")
Rechercher des sujets similaires à "piloter page sql server"