Existe-t-il un moyen de récupérer automatiquement des cours boursiers dans
Excel ?
requête ou autres.....
Merci de vos réponses
A+
"Norbert" <nor...@wanadoo.fr> a écrit dans le message news:
93p4ob$abu$1...@wanadoo.fr...
Dans le dossier C:\Program Files\Microsoft Office\Requetes\ créer un fichier
avec le Bloc-Notes par exemple.
Ce fichier contiendra 3 lignes :
WEB
1
http://www.boursorama.com/portefeuille/new_print_portefeuille.phtml?..etc
Ceci est l'adresse complète du site où la page Web est à rapatrier
Enregistrer ce fichier avec un nom et extension .iqy. Dans mon cas :
Portef1.iqy.
La procédure suivante appelera le site et transferera la page ou tableau
dans excel a partir de la cellule A1
Public Sub Portef_Query()
With ActiveSheet.QueryTables.Add(Connection:= _
FINDER;C:\Program Files\Microsoft Office\Requetes\Portef1.iqy,
Destination:=Range("A1"))
' Range A1 est dans la feiulle active d'excel
.FieldNames = False
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = False
.SaveData = True
End With
End Sub
=====================================================================
Ci-dessous les macros que j'utilise afin de rapatrier 4 tableau dans 4
feuilles distinctes. Elles sont dans mon mon fichier Action_T_3.xls
Option Explicit
Const lefichier_T = "Action_T_3.xls"
Public Sub nettoie(portef)
Sheets(portef).Select
Range("A1:K40").Select
Selection.ClearContents
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Range("A1").Select
End Sub
Sub Clear_le_Fichier_T()
'Le fichier T est celui dans lequel je charge les infos de Boursorama, il
comporte 4feuilles
Dim Inrcr As Integer
Windows(lefichier_T).Activate
Call nettoie("portef_1") ' Je clear ce fichier pour suprimer les
cellules groupées.
Call nettoie("portef_2")
Call nettoie("portef_3")
Call nettoie("portef_4")
Sheets("portef_1").Select
End Sub
Public Sub Portef_Query(No_portef)
With ActiveSheet.QueryTables.Add(Connection:= _
No_portef, Destination:=Range("A1"))
.FieldNames = False
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = False
.SaveData = True
End With
End Sub
Public Sub Web_to_Excel()
Dim bourso
Dim CRLF As String
Const Q_Portef_1 = "FINDER;C:\Program Files\Microsoft
Office\Requetes\Portef1.iqy"
Const Q_Portef_2 = "FINDER;C:\Program Files\Microsoft
Office\Requetes\Portef2.iqy"
Const Q_Portef_3 = "FINDER;C:\Program Files\Microsoft
Office\Requetes\Portef3.iqy"
Const Q_Portef_4 = "FINDER;C:\Program Files\Microsoft
Office\Requetes\Portef4.iqy"
CRLF = Chr(13) & Chr(10) 'défini le Cr et le LF : la Const n'en
veut pas
'Appel Internet Boursorama pour le code et Password
Application.ScreenUpdating = False
Clear_le_Fichier_T
Windows(lefichier_T).Activate
' pour préparer la ligne suivante active dans toutes les procédures
Sheets("Portef_1").Select
Call Portef_Query(Q_Portef_1) 'appel le P_1
Sheets("Portef_2").Select
Call Portef_Query(Q_Portef_2)
Sheets("Portef_3").Select
Call Portef_Query(Q_Portef_3)
Sheets("Portef_4").Select
Call Portef_Query(Q_Portef_4)
Sheets("Portef_1").Select
Application.ScreenUpdating = True
End Sub
"Norbert" <nor...@wanadoo.fr> a écrit dans le message news:
93p4ob$abu$1...@wanadoo.fr...