Bonjour,
Après de nombreuses recherches infructueuses, j'aimerai obtenir de l'aide.
Dans le cadre de mon travail, je dois récupérer des données sur le PMSI (données médicales confidentielles). Ces données concernent des indications en terme de dépense pour tous les établissement de Santé de ma région et sont mises à jour tous les mois. Afin d'éviter de tout importer avec des multiples copier coller qui me prendraient un temps énorme, je désire faire un programme qui récupère automatiquement ces données pour un etablissement qu'on a choisit au préalable. Cependant la difficulté réside dans le fait que je dois me logguer pour accéder au site. Si bien qu'un import classique de la forme suivante ne marche pas (car pas d'acces au site sans le mot de passe renseigné):
Du coup pour contourner cela, j'ai fait un code qui me permet de naviguer directement dans la page web, rentrer mon identifiant et mon mot de passe et accéder à la page que je veux:
Mais ca ne m'avance pas car une fois que je suis sur la page ou se trouve le tableau qui m'intéresse, je ne sais pas comment faire pour l'importer, dire a excel que je veux pas importer le tableau se trouvant à l'adresse URL (www.......) mais le tableau se trouvant sur la page internet active ce qui est sensiblement différent. Si vous avez des idées, je suis preneur.
Cordialement,
E.Legrand
Après de nombreuses recherches infructueuses, j'aimerai obtenir de l'aide.
Dans le cadre de mon travail, je dois récupérer des données sur le PMSI (données médicales confidentielles). Ces données concernent des indications en terme de dépense pour tous les établissement de Santé de ma région et sont mises à jour tous les mois. Afin d'éviter de tout importer avec des multiples copier coller qui me prendraient un temps énorme, je désire faire un programme qui récupère automatiquement ces données pour un etablissement qu'on a choisit au préalable. Cependant la difficulté réside dans le fait que je dois me logguer pour accéder au site. Si bien qu'un import classique de la forme suivante ne marche pas (car pas d'acces au site sans le mot de passe renseigné):
Code:
ActiveWindow.SmallScroll Down:=3
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://www.epmsi.atih.sante.fr/appli_16.do?
year=2011&trimestre=1&action=3&applicationState=3" _
, Destination:=Range("Feuil4!$A$1"))
.Name = "DonnéesExternes_30"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Du coup pour contourner cela, j'ai fait un code qui me permet de naviguer directement dans la page web, rentrer mon identifiant et mon mot de passe et accéder à la page que je veux:
Code:
Set IE = CreateObject("internetExplorer.Application")
IE.Visible = True
With IE
.navigate "https://pasrel.atih.sante.fr/cas/login?service=https%3A%2F%2Fwww.epmsi.atih.sante.fr%2Fcas%2Fcaslogin.do"
Do Until .readyState = 4 '
DoEvents
Loop 'attend la fin du chargement
End With
Dim bOk As Boolean
Set elementHtml = IE.Document.getElementById("username")
If Not elementHtml Is Nothing Then
bOk = True
elementHtml.Value = "MON IDENTIFIANT"
Set elementHtml = IE.Document.getElementById("password")
If Not elementHtml Is Nothing Then
bOk = True
elementHtml.Value = "MON MOT DE PASSE"
Set elementHtml = IE.Document.getElementById("submit")
If Not elementHtml Is Nothing Then
bOk = True
elementHtml.Click
Else
bOk = False
End If
Else
bOk = False
End If
Else
bOk = False
End If
DoEvents
With IE
.navigate "https://www.epmsi.atih.sante.fr/jsp/applis/applis.jsp"
Do Until .readyState = 4
DoEvents
Loop
End With
With IE
.navigate "https://www.epmsi.atih.sante.fr/jsp/applis/applisMat2a.jsp"
Do Until .readyState = 4
DoEvents
Loop
End With
With IE
.navigate "https://www.epmsi.atih.sante.fr/appli_16.do?champPmsi=1&statut=1&applicationType=3"
Do Until .readyState = 4
DoEvents
Loop
End With
With IE
.navigate "https://www.epmsi.atih.sante.fr/appli_16.do?year=2011&trimestre=1&action=3&applicationState=3"
Do Until .readyState = 4
DoEvents
Loop
End With
Mais ca ne m'avance pas car une fois que je suis sur la page ou se trouve le tableau qui m'intéresse, je ne sais pas comment faire pour l'importer, dire a excel que je veux pas importer le tableau se trouvant à l'adresse URL (www.......) mais le tableau se trouvant sur la page internet active ce qui est sensiblement différent. Si vous avez des idées, je suis preneur.
Cordialement,
E.Legrand