Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 2011
-
22 août 2006 à 16:05
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 2011
-
23 août 2006 à 08:45
Un petit soucis, qui aurait tendance à m'énerver profondément depuis 2 heures, si une bonne âme charitable peut m'aider.
Ce que je cherche à faire :
A automatiser une opération qui est actuellement faite à la main, à savoir ouvrir une page Web dans IE, sélectionner le texte afffiché à l'écran et via un copier/coller, récupérer ce texte dans un fichier Excel.
Je suis d'abord tomber en fouillant sur le net et sur VBFrance sur ce bour de code :
'necessite d'activer la référence "Microsoft Internet Controls"
Dim IE As New InternetExplorer
Dim winShell As New ShellWindows
On Error Resume Next
For Each IE In winShell
If IE.LocationURL <> "" Then _
MsgBox IE.LocationURL & vbCrLf & vbCrLf & IE.Document.Selection.createRange.Text
Next IE
Set IE = Nothing
Cela semble répondre en partie à mon pb, puisqu'il m'affiche dans la msgbox ce qui est sélectionné dans une page web via la méthode IE.Document.Selection ...
Soucis : Cela fonctionne si la page WEB est déjà ouverte et que j'ai sélectionné du texte auparavant. Je tente de biaiser en voulant donner le focus à la page web que j'ai ouverte et en sélectionnant tout le texte (via un sendkeys "^a" ...si vous avez mieux, je vous écoute ^^).
Bien entendu, je n'y arrive pas.
J'ai donc essayé une autre méthode, avec ce petit bout de code :
Dim web 'As InternetExplorer.Application
Dim doc 'As InternetExplorer.Document
Set web = CreateObject("InternetExplorer.Application")
Là encore, pb de références : impossible de définir le .application et le .document.
Dans mon projet, j'ai déclaré les références suivantes :
Microsoft Internet Control
Microsoft HTML Library
Je pense que la propriété Document de mon objet IE est la clé pour ce que je cherche à faire, impossible de connaitre les propriétés attachées (autre que .selection trouvé dans un bout de code). J'aimerai avoir la liste de ces prorpiétés. Quand je tente au hasard une propriété (genre .name), j'ai une erreur d'automation. Ca ressemble à une erreur de référence, mais je ne vois pas quoi d'autre référencer dans mon projet.
Donc, j'écoute toute suggestion pour m'aider à résoudre mon cas (faire lpus de 200 copier/coller tous les mois, c'est pas ce qui se fait de plus passionnant).
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200831 22 août 2006 à 18:32
bonsoir...;o)
tu peux tester cette adaptation
Sub ExporterTexte_PageInternetDansCellule()
'Necessite d'activer la reference to Microsoft Internet Controls
Dim IE As InternetExplorer
Dim nFile As Integer
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = False
.Silent = True
.Navigate "www.laSiteWeb.html"
.Visible = True
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop 'attend la fin du chargement
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 23 août 2006 à 08:45
Ca fonctionne nickel ... Youpiiii !!!
Plus qu'à bidouiller tout ça pour adapter à mes besoins ^^
Merci !!
Il me reste des questions, si jamais tu as la réponse :
- Mon contenu s'intègre dans une cellule : je récupère l'équivalent d'un fichier texte (sauf que je n'ai pas ce fichier texte à dispo, sinon, ce serait trop facile ^^), donc données séparées par des tabulations, ou alors présentées dans un tableau : j'ai un moyen de l'intégrer dans mon fichier Excel avec la même présentation (nb de colonnes, de lignes, ...) ? L'intégrer comme avec un import de données externes en quelques sortes ?
- Quid de mon pb de déclaration de IE.document par ex ? Ca vient du fait que je sois en VBA et non en VB pur ?
- La page à laquelle j'accède repose à priori sur du xml issu d'Excel (l'icône d'Excel présente dans l'icône du fichier, des graphiques Excel à l'intérieur) ... Cette page possède un certain nomber d'onglets (tabs) gérés dans la page html.
L'idéal serait que je copie le texte affiché dans un onglet donné, mais je n'arrive pas à y accéder par défaut. Je me doute qu'il n'y a pas assez d'éléments pour m'aider, mais si jamais tu as une piste.
D'avance merci si jamais une idée venait.
Et encore merci pour le bout de code !!