|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Boîte de dialogue Internet Explorer [ Réseaux & Internet / Internet ] (Preetamus)
Informations & options pour cette discussion
|
mercredi 9 juillet 2008 à 16:19:16 |
Boîte de dialogue Internet Explorer

Preetamus
|
Bonjour, j'ai créé une macro qui se log sur un site et ensuite va chercher un tableau. Ce tableau je veut l'ouvrir en excel donc je simule un clique sur le lien "Télécharger" sur la page. Jusqu'ici aucun problème pour implémenter sous vba. Et c'est là que je bloque. Internet Explorer me demande alors si je ve ouvrir le fichier ou l'enregistrer (avec la boîte de dialogue classique) et je ne sais pas comment "dire" à explorer d'ouvrir le fichier concerné Sachant que j'ai plus de 500 fichier à télécharger, il me faut trouver une solution pour automatiser tout cela. Preetamus
|
|
|
|
mercredi 9 juillet 2008 à 16:27:25 |
Re : Boîte de dialogue Internet Explorer

Renfield
|
envoies toi même la requete HTTP ... tu recevra le contenu du fichier directement...
passes par MsInet, par exemple
|
|
|
|
mercredi 9 juillet 2008 à 16:50:41 |
Re : Boîte de dialogue Internet Explorer

Preetamus
|
Comme d'habitude tu es le plus rapide à répondre. merci
Le prob c que le tableau que je ve ouvrir dépends de la saisie que je fais sur le site. tu penses que c possible de lancer la requête directement de vba- et ensuite ouvrir le tableau xls via excel?
je ne connais pas MsInet
|
|
|
|
mercredi 9 juillet 2008 à 16:53:11 |
Re : Boîte de dialogue Internet Explorer

Preetamus
|
pour info voilà mon code vba (simplifié mais il marche aussi). ddada est la date à laquelle je veux obtenir les données du tableau.
Function forward(ddada) 'fonction qui va chercher les taux forward de l'euribor 3M et les télécharge dans excel 'dans un fichier s'appelant downloadPage Set IE = CreateObject("InternetExplorer.application") IE.Visible = False muda = CStr(ddada) IE.navigate " [ Lien ]" While Timer = False Wend IE.document.all("pPwd").Value = "****" IE.document.all("pLoginName").Value = "****" IE.document.all("ctl00$column3$ctl00$buttonLogin").Click While Timer = False Wend IE.navigate "https://cib.natixis.com/net/derivatives/aspx/interestforwardrateswap.aspx" While Timer = False Wend IE.document.all("_ctl0:tabVol:ucHisto1:CdcPanel1:cdb_from").Value = muda 'rentre la date dans le champ de recherche IE.document.Links(42).Click 'click sur valider IE.document.Links(43).Click 'click sur télécharger 'IE.Application.Wait End Function
|
|
|
|
mercredi 9 juillet 2008 à 16:56:24 |
Re : Boîte de dialogue Internet Explorer

Renfield
|
tu peux faire joujou avec ton site web (manuellement ou en pilotant la chose)...
ca finira, je pense par un envoi de tes parametres en POST ou GET, selon méthode du formulaire concerné...
reste que tout cela peut être fait sans WebBrowser, en dialoguant avec le serveur web, en face.
tu te fais en gros passer IE, validant le forumlaire que tu viens de remplir...
MsInet (ou autre, hein) est un composant Microsoft qui permet justement de dialoguer en HTTP. c'est assez documenté, et le siet possède, j'en suis sur un tas d'exemples.
a voir le site concerné, etc.
j'ai pas de réponse toute faite.
|
|
|
|
mercredi 9 juillet 2008 à 17:01:44 |
Re : Boîte de dialogue Internet Explorer

Renfield
|
ah, un domaine que je connais bien ^^
(et Natexis, euh, pardon, Natixis était un de nos clients)
concernant ton code, méfies toi de
While Timer = False
Wend
qui ne garantie pas grand chose, au final...
se fier plutot au ReadyState
si le coeur t'en dit, files moi Login & Pass par MP, je verrai demain ce que je puis faire pour toi.
|
|
|
|
mercredi 9 juillet 2008 à 17:05:14 |
Re : Boîte de dialogue Internet Explorer

Preetamus
|
Merci pour ta réponse je vais creuser un peu plus le sujet.. au pire je reviendrais si jai besoin de précisions ^^
|
|
|
|
jeudi 10 juillet 2008 à 09:23:04 |
Re : Boîte de dialogue Internet Explorer

Renfield
|
finalement, après avoir vu précisément la chose, on peux greffer quelques choses a ton code afin de récupérer les données.
ci dessous, le code complété, corrigé, commenté...
a toi par la suite de placer les données CSV obtenues dans Excel (ce qui n'est pas très complexe, c'est un format reconnu par ce dernier).
|
|
|
|
jeudi 10 juillet 2008 à 09:25:13 |
Re : Boîte de dialogue Internet Explorer

Renfield
|
Réponse acceptée !
Option Explicit Private Const READYSTATE_COMPLETE = 4 Private Const READYSTATE_INTERACTIVE = 3
Private moIE As Object
'# Cette procédure va instancier IE afin de se connecter sur le site. Private Sub InitIE(ByRef vsLogin As String, ByRef vsPassword As String) Set moIE = CreateObject("InternetExplorer.Application") moIE.Visible = False moIE.navigate "http://cib.natixis.com/" '# Après un Navigate, on attend que le ReadyState soit à Complete Do DoEvents Loop Until moIE.readyState = READYSTATE_COMPLETE
'# On entre les identifiants moIE.document.getElementsByName("pLoginName")(0).Value = vsLogin moIE.document.getElementsByName("pPwd")(0).Value = vsPassword moIE.document.getElementsByName("ctl00$column3$ctl00$buttonLogin")(0).Click
'# Après avoir joué avec les formulaires, on attend que le ReadyState soit à Interactive Do DoEvents Loop Until moIE.readyState = READYSTATE_INTERACTIVE Do DoEvents Loop Until moIE.readyState = READYSTATE_COMPLETE
'# On se rend sur la page des données moIE.navigate "https://cib.natixis.com/net/derivatives/aspx/interestforwardrateswap.aspx"
Do DoEvents Loop Until moIE.readyState = READYSTATE_COMPLETE End Sub
Private Sub QuitIE() moIE.Quit Set moIE = Nothing End Sub
'# Cette fonction va interroger le site pour obtenir les données concernant une date donnée. '# Le résultat se présente sous la forme de données CSV. Private Function GetForward(ByVal vdWhen As Date) As String '# Pour cela, on a juste à saisir la date dans le format requis moIE.document.getElementsByName("_ctl0:tabVol:ucHisto1:CdcPanel1:cdb_from")(0).Value = Format$(vdWhen, "DD/MM/YYYY") 'rentre la date dans le champ de recherche '# On valide la saisie moIE.document.Links(42).Click '# Une fois les données chargées... Do DoEvents Loop Until moIE.readyState = READYSTATE_INTERACTIVE Do DoEvents Loop Until moIE.readyState = READYSTATE_COMPLETE
'# On lance la conversion tableau HTML => CSV GetForward = HTMLToCsv(moIE.document.getElementsByName("_ctl0_tabVol_ucHisto1_CdcPanel3_BigGrid1_myGrid")(0).innerHTML) End Function
'# Cette fonction va convertir notre tableau HTML en données CSV '# Les tags composant ce tableau sont alignés à gauche, et ils sont organisés en lignes. Private Function HTMLToCsv(ByRef vsInput As String) As String Dim xsLines() As String Dim i As Long Dim sTag As String Dim sData As String Dim nPos As Long Dim sCurrentRow As String '# On a donc simplement à séparer les lignes, pour qu'en tête de celles-ci nous trouvions les ouvertures des différents tags HTML xsLines = Split(vsInput, vbCrLf) For i = 0 To UBound(xsLines) '# On extrait le nom du tag nPos = InStr(xsLines(i), ">") sTag = Mid$(xsLines(i), 2, nPos - 2) If InStr(sTag, " ") Then sTag = Left$(sTag, InStr(sTag, " ") - 1) End If '# Puis les éventuelles données sData = Mid$(xsLines(i), nPos + 1) nPos = InStr(sData, "<") If nPos Then sData = Left$(sData, nPos - 1) End If If LenB(sData) Then sData = Replace(sData, " ", " ") End If '# On lance la converion pour un élément GoSub ConvertItem Next i '# Une fois le traitement terminé, on ajoute la dernière ligne analysée au contenu déjà récupéré sTag = "TR" GoSub ConvertItem Exit Function ConvertItem: Select Case sTag Case "TR" If LenB(sCurrentRow) Then '# On ajoute une ligne a la sortie If LenB(HTMLToCsv) Then HTMLToCsv = HTMLToCsv & vbCrLf End If '# Et on ajoute la ligne que l'on vient d'analyser HTMLToCsv = HTMLToCsv & sCurrentRow sCurrentRow = vbNullString End If Case "TD" '# On ajoute un séparateur ";" entre chaque colonne If LenB(sCurrentRow) Then sCurrentRow = sCurrentRow & ";" End If sCurrentRow = sCurrentRow & sData End Select Return End Function
' Et pour faire fonctionner le tout : ' On initialise le transfert InitIE "xxxxxx", "************" '# On demande les données pour une date précise MsgBox GetForward(#7/7/2008#), vbOKOnly, "Lundi 07/07/2008" MsgBox GetForward(#7/8/2008#), vbOKOnly, "Mardi 08/07/2008" MsgBox GetForward(#7/9/2008#), vbOKOnly, "Mercredi 09/07/2008" '# Enfin, on ferme IE QuitIE
| | | | | | By Renfield | | | | | Renfield Admin CodeS-SourceS - MVP Visual Basic
|
|
|
|
jeudi 10 juillet 2008 à 10:49:44 |
Re : Boîte de dialogue Internet Explorer

Preetamus
|
Merci beaucoup. jvai voir plus en détail ce code que tu as écrit. en tout cas jvai surement apprendre plein de trucs
Preetamus
|
|
|
Cette discussion est classé dans : ouvrir, explorer, internet, dialogue, boîte
Répondre à ce message
Sujets en rapport avec ce message
Comment ouvrir internet explorer avec les fonctions menubar=no ... [ par CrowEye ® ]
Ben tout est dans le titre ..
Boîte de dialogue OUVRIR [ par ckoo ]
comment ouvrir une boît de dialogue ouvrir depuis un programme VB ?de plus je voudrais récupérer le chemin d'accés du fichier sélectionné !!merci d'av
Faire apparaitre la boîte de dialogue Ouvrir [ par Ricil ]
Bonjour,je cherche la méthode pour afficher la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé par l'utilisateur sans réellement ouvri
boîte de dialogue ouvrir [ par sg1 ]
MarcComment gérer la petite croix du menu systeme d'un boîte de dialogue ouvrir:eviter err 75
Ouvrir internet explorer [ par ndsaerith ]
Salut tout le monde,Voila, j'ai un formulaire qui permet l'acces directement à des site (sur l'appuie sur leur logo, qui est une image). Mais je ne sa
ouvrir internet explorer avec une macro de word [ par ManuAntibes ]
Salut J'ai fais un .dot en wordJ'ai mis un label de texte avec une adresse email de dans.Je souhaite pouvoir ouvrir une page internet en cliquant sur
Ouvrir des fichiers internet indexés [ par stef76000 ]
Salut à tous, voilà ma demande :J'aimerais pouvoir ouvrir des fichiers par internet explorer.Là, je n'ai pas de problèmes avec la ligne ci dessousSHEL
ouvrir internet explorer avec un mot de passe et login [ par puddle555 ]
Bonjour, Je voudrais ouvrir une adresse par exepemple http://concours mais cette adresse necessite un login et user, je voudrais ecrire un program
ouvrir internet explorer avec un mot de passe et login [ par puddle555 ]
Bonjour, Je voudrais ouvrir une adresse par exepemple http://concours mais cette adresse necessite un login et user, je voudrais ecrire un program
ouvrir internet explorer avec un mot de passe et login [ par puddle555 ]
Bonjour, Je voudrais ouvrir une adresse par exepemple http://concours mais cette adresse necessite un login et user, je voudrais ecrire un program
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|